Чтение данных Excel из C # - PullRequest
       6

Чтение данных Excel из C #

0 голосов
/ 27 сентября 2011

Я пытаюсь прочитать данные из листа Excel, используя пространство имен Office.Interoperability.Excel.Я хотел бы получить первую строку листа, так как первая строка содержит заголовки, без указания начальной и конечной ячеек.Потому что я не знаю, будет ли добавлен новый столбец на лист.

    Microsoft.Office.Interop.Excel.Application excelObj = new Application();

    Microsoft.Office.Interop.Excel.Workbook myBook = excelObj.Workbooks.Open(@"D:\myFile.xlsx", 0, true, 5, "", "", true, Microsoft.Office.Interop.Excel.XlPlatform.xlWindows, "\t", false, false, 0, true, 0, 0);

    Microsoft.Office.Interop.Excel.Worksheet mySheet = (Worksheet)myBook.Sheets.get_Item(1);

    Range range = mySheet.Cells.EntireRow;

Здесь диапазон становится всем диапазоном и не ограничивается количеством столбцов заголовка.Также у меня есть огромные данные для обработки около 10000 строк.

Ответы [ 3 ]

2 голосов
/ 27 сентября 2011

Если ваше требование не требует обратной записи в файл Excel, я бы посоветовал вам использовать Excel Data Reader (http://exceldatareader.codeplex.com/) намного проще в использовании, не требует Excel на сервере и быстрее

1 голос
/ 27 сентября 2011

Я только что ответил на другой вопрос по чтению Excel здесь: C # конвертирует .xls в .csv без Excel

Библиотека FileHelpers идеально подходит для вашей задачи. Я использую это для тех чисел строк и выше.

Я не знаю, что вы делаете со строками после их чтения из Excel, но если вы рассматриваете какую-то обработку, которая может быть разбита на этапы, взгляните на Rhino.Etl для этого. Это действительно мощный способ обработки больших объемов данных.

1 голос
/ 27 сентября 2011

Я думаю, вы ищете это:

Range headers = mySheet.UsedRange.Rows(1);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...