Ejemplo n.º 1
0
        /// <summary>
        /// Возвращает массив с данными для импорта
        /// </summary>
        /// <param name="fileName">путь к файлу</param>
        /// <returns></returns>
        private static object[,] GetData(string fileName)
        {
            object[,] dataArr;
            //TODO здесь должно быть чтение MXL
            //if (System.IO.Path.GetExtension(fileName).ToLower() == ".mxl")
            //{
            //	var curWb  = new SpreadsheetDocument();
            //	curWb.Open(fileName);


            //	var a = curWb.Area(1,1,10,10).Value;
            //	return null;
            //}
            //else
            //{
            var     curWb    = new Microsoft.Office.Interop.Excel.Application().Workbooks.Open(fileName);
            dynamic curSheet = curWb.Worksheets.Item[1];
            var     lastRow  = curSheet.Cells.SpecialCells(Microsoft.Office.Interop.Excel.XlCellType.xlCellTypeLastCell).Row;
            var     lastCol  = curSheet.Cells.SpecialCells(Microsoft.Office.Interop.Excel.XlCellType.xlCellTypeLastCell).Column;

            // Считываем лист в массив
            var range = (Microsoft.Office.Interop.Excel.Range)curSheet.Range[curSheet.Cells[1, 1], curSheet.Cells[lastRow, lastCol]];

            dataArr = (object[, ])range.Value;
            curWb.Close();
            //}
            if (dataArr == null)
            {
                throw new Exception("Файл не содержит данных.");
            }
            return(dataArr);
        }