C # и файлы Excel - PullRequest
       53

C # и файлы Excel

3 голосов
/ 09 ноября 2009

Мне нужно создать программу, которая может читать / записывать в файл Excel. Должен ли я использовать OleDB или использовать объект Excel? Каковы преимущества одного перед другим, и где я могу прочитать, чтобы начать реализацию этого?

Ответы [ 7 ]

4 голосов
/ 09 ноября 2009

Мне пришлось сделать это недавно, и я нашел NPOI (http://npoi.codeplex.com/) лучшая ставка, тем более что мне нужно было генерировать двоичные файлы .xls, которые не вызывали у клиента каких-либо смущающих ошибок относительно типов файлов.

Подробнее см. в этом блоге . Вы также обнаружите, что, поскольку это порт существующей инфраструктуры, для исходной платформы доступно множество справок, применимых к порту.

3 голосов
/ 09 ноября 2009

Excel Automation может быть грязной и не поможет, если ваша программа предназначена для работы на веб-сервере, но она предоставит вам полный доступ для чтения, изменения и создания файлов Excel.

Использование драйвера OLEDB работает только с файлами Excel 1998-2003, но не с Excel 2007, имеет лишь ограниченный набор функций (обрабатывает листы и именованные области как «таблицы», которые можно читать и записывать как базу данных - нет) контроль над форматированием, формулами и т. д.) и имеет некоторые существенные ограничения, но будет отлично работать в приложении ASP.NET.

(Существует отдельный драйвер, который можно загрузить для доступа к файлам OOXML (xlsx) в Excel 2007 через OLEDB. Я не знаю, каковы его возможности или ограничения по сравнению со старым драйвером.)

Другой вариант, если приложение работает в ASP.NET, - это получить стороннюю библиотеку для чтения и записи файлов Excel. Некоторые из них с открытым исходным кодом (как правило, те, которые только для чтения / записи файлов Excel XML из Excel 2002-2007, NPOI является одним заметным исключением), некоторые довольно дорогие.

О единственном, что вы не хотите сделать, - это попытаться внедрить собственное устройство чтения / записи Excel в формате BIFF (стандартный формат файла 1997-2003). Формат файла развивался с течением времени и слишком сложен для простых смертных.

1 голос
/ 21 июня 2011

Если вы хотите чтение / запись файла Excel в приложении на сервере, вы можете использовать Excel Jetcell .NET компонент .

Имеет полезные функции для экспорта данных из DataSet, DataTable в формат Excel. Также он может сохранить файл Excel (xls, xlsx) или представить Excel как поток, который открывает больше возможностей для разработчиков. См. Больше файлов C # excel примеров кода.

1 голос
/ 09 ноября 2009

SpreadsheetGear for .NET - это совместимый с Excel компонент электронных таблиц, который может читать и записывать книги Excel (xls и xlsx), помимо прочего, и не зависит от Excel, OleDb или чего-либо другого, кроме библиотек .NET .

Вы можете посмотреть некоторые живые образцы здесь и загрузить бесплатную пробную версию здесь .

Отказ от ответственности: я владею SpreadsheetGear LLC

1 голос
/ 09 ноября 2009

Для написания, есть простой обходной путь, который вы могли бы рассмотреть, облегчающий вашу жизнь .... Запишите все в текстовый файл, разделенный запятыми, и сохраните его как CSV. Затем запустите Excel с помощью команды оболочки с вашим CSV в качестве аргумента. Voilla, мгновенный экспорт в Excel.

Привет

0 голосов
/ 23 июля 2011

вам не нужен сторонний инструмент для чтения / записи в файлах Excel ... все, что вам нужно, уже включено в namspace Microsoft.Office.Interop.Excel;
сначала создайте файл Excel и назовите его, например .. test1.xls ... или что-нибудь еще вот код, который вам нужен:

using Excel = Microsoft.Office.Interop.Excel;
Excel.Application AppName = new Excel.Application();
Excel.Workbook bookName = AppName.Workbooks.Open(C:\....\test1);
Excel.Worksheet sheetName = AppName.Worksheets.get_Item(1);
sheetName.Rows[5].Cells[5].Value = "hello!";  //that writes hello in cell 5,5 in test1.xls
string box;
box = sheetName.Rows[10].Cells[10].Value;  //that reads the value of 10,10 cell in test1.xls and place it in box variable
0 голосов
/ 09 ноября 2009

Возможно, вам достаточно возможностей бесплатного компонента " CarlosAg "? Не требует установленного Excel на машине. Я пользуюсь им и доволен этим.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...