Други, всем привет.
Понимаю, звучит по идиотски но у меня уже истерика.
1. В проекте есть еще несколько файлов и таблиц. И я спокойно через кубик, файл привязываю к таблице, а из таблице кубиком переношу нужный столбец в список. Работает везде кроме 1 таблицы, которая отличается от предыдущий только тем, что в столбце формулы и значения.
При быстром просмотре таблицы, я вижу значения .. все ок, при нажатии на пред. просмотр, таблица как будто свернута и соответственно при переносе в список переносится пустота.
2. Стоит мне что-то поменять в настройках таблицы .. 1 строка заголовок, любую галку поставить, сразу таблица воспринимается и все работает.
3. В итоге пришел к тому что нужно через C# и не лохматить бабушку.
Итого добавил библиотеку MS Office interop Excel
Написал код
string pathToFile = @"C:\Users\Win10Pro\1урлы.xlsx";
//Создаём приложение.
Microsoft.Office.Interop.Excel.Application ObjExcel = new Microsoft.Office.Interop.Excel.Application();
//Открываем книгу.
Microsoft.Office.Interop.Excel.Workbook ObjWorkBook = ObjExcel.Workbooks.Open(pathToFile, 0, false, 5, "", "", false, Microsoft.Office.Interop.Excel.XlPlatform.xlWindows, "", true, false, 0, true, false, false);
//Выбираем таблицу(лист).
Microsoft.Office.Interop.Excel.Worksheet ObjWorkSheet;
ObjWorkSheet = (Microsoft.Office.Interop.Excel.Worksheet)ObjWorkBook.Sheets[1];
// Указываем номер столбца (таблицы Excel) из которого будут считываться данные.
int numCol = 1;
Range usedColumn = ObjWorkSheet.UsedRange.Columns[numCol];
System.Array myvalues = (System.Array)usedColumn.Cells.Value2;
string[] strArray = myvalues.OfType<object>().Select(o => o.ToString()).ToArray();
// Выходим из программы Excel.
ObjExcel.Quit();
На что получаю ошибку компиляции по диапазону
Компиляция кода Ошибка в действии "CS0122" "'Range' is inaccessible due to its protection level". [Строка: 15; Cтолбец: 1]
Т.е. тут
System.Array myvalues = (System.Array)usedColumn.Cells.Value2;
Кто понимает, что окаянный от меня хочет?
Понимаю, звучит по идиотски но у меня уже истерика.
1. В проекте есть еще несколько файлов и таблиц. И я спокойно через кубик, файл привязываю к таблице, а из таблице кубиком переношу нужный столбец в список. Работает везде кроме 1 таблицы, которая отличается от предыдущий только тем, что в столбце формулы и значения.
При быстром просмотре таблицы, я вижу значения .. все ок, при нажатии на пред. просмотр, таблица как будто свернута и соответственно при переносе в список переносится пустота.
2. Стоит мне что-то поменять в настройках таблицы .. 1 строка заголовок, любую галку поставить, сразу таблица воспринимается и все работает.
3. В итоге пришел к тому что нужно через C# и не лохматить бабушку.
Итого добавил библиотеку MS Office interop Excel
Написал код
string pathToFile = @"C:\Users\Win10Pro\1урлы.xlsx";
//Создаём приложение.
Microsoft.Office.Interop.Excel.Application ObjExcel = new Microsoft.Office.Interop.Excel.Application();
//Открываем книгу.
Microsoft.Office.Interop.Excel.Workbook ObjWorkBook = ObjExcel.Workbooks.Open(pathToFile, 0, false, 5, "", "", false, Microsoft.Office.Interop.Excel.XlPlatform.xlWindows, "", true, false, 0, true, false, false);
//Выбираем таблицу(лист).
Microsoft.Office.Interop.Excel.Worksheet ObjWorkSheet;
ObjWorkSheet = (Microsoft.Office.Interop.Excel.Worksheet)ObjWorkBook.Sheets[1];
// Указываем номер столбца (таблицы Excel) из которого будут считываться данные.
int numCol = 1;
Range usedColumn = ObjWorkSheet.UsedRange.Columns[numCol];
System.Array myvalues = (System.Array)usedColumn.Cells.Value2;
string[] strArray = myvalues.OfType<object>().Select(o => o.ToString()).ToArray();
// Выходим из программы Excel.
ObjExcel.Quit();
На что получаю ошибку компиляции по диапазону
Компиляция кода Ошибка в действии "CS0122" "'Range' is inaccessible due to its protection level". [Строка: 15; Cтолбец: 1]
Т.е. тут
System.Array myvalues = (System.Array)usedColumn.Cells.Value2;
Кто понимает, что окаянный от меня хочет?