Пожалуйста, предложите способы манипулирования электронной таблицей Excel без использования объекта Excel, поскольку на веб-сервере не установлен MS Office. - PullRequest
3 голосов
/ 15 апреля 2010

Хотелось бы узнать, как работать с электронными таблицами Excel с помощью ASP.NET 2.0 без использования объекта Excel, поскольку на веб-сервере не установлен MS Office.

Ответы [ 6 ]

4 голосов
/ 15 апреля 2010

Мы используем SpreadsheetGear в нашем приложении по той же причине. Это библиотека .Net, которая может читать / писать / редактировать файлы Excel, не устанавливая Excel на компьютере. Это коммерческая библиотека, поэтому вам придется купить ее - хотя вы можете развернуть ее бесплатно, а это означает, что вам нужны только лицензии для ее разработки, а не для каждого развертывания.

3 голосов
/ 15 апреля 2010

Вы можете использовать ADO для чтения и записи в Excel.

strFile = "C:\Docs\TheFile.xls"

Set cn = CreateObject("ADODB.Connection")

With cn
   .Provider = "MSDASQL"
   .ConnectionString = "Driver={Microsoft Excel Driver (*.xls)};" & _
     "DBQ=" & strFile & "; ReadOnly=False;"
   .Open
End With

strSQL = "SELECT * FROM [Sheet4$]"

Set rs = CreateObject("ADODB.Recordset")
rs.Open strsql, cn, 2, 3

rs.Fields(1)="B"
rs.Fields("Type")="E"
rs.Update

Подробнее: http://support.microsoft.com/kb/257819

РЕДАКТИРОВАТЬ: Я вижу, что MSDASQL устарела Microsoft, так что это лучшие строки подключения.

scn = "Provider=Microsoft.Jet.OLEDB.4.0;" & _
        "Data Source=" & strFile & ";" & _
        "Mode=ReadWrite;Extended Properties=""Excel 8.0;HDR=No"""

cn.Open scn

Если для HDR установлено значение Нет, можно перезаписать существующие заголовки, используя либо счет позиции с нуля, либо имя поля (столбца) по умолчанию, а это F1, F2 ... Fn, считая с первого столбца диапазон выбора. Если для HDR установлено значение yes, то имена полей (столбцов) являются первой строкой. Неверные имена будут установлены по умолчанию.

Mode - это enum, так что вы можете иметь, например, Mode=Share Deny None; или Mode=Read|Share Deny Read|Share Deny Write;.

Вы можете дополнительно включить в строку подключения:

MaxScanRows=0;
IMEX=0;
Persist Security Info=False;

Настройка MaxScanRows и IMEX будет очень полезна, только если вы вмешаетесь в реестр.

Возможные значения IMEX:

    0 is Export mode
    1 is Import mode
    2 is Linked mode (full update capabilities)

- http://support.microsoft.com/kb/194124

1 голос
/ 15 апреля 2010

Вы можете использовать Open XML SDK для управления документами Office 2007

0 голосов
/ 15 апреля 2010

Как сказали все 3 выше. Это можно сделать только с листами Excel 2007, поскольку они хранятся в виде данных XML в zip-файле.

Для более старых версий Excel требуются сторонние компоненты.

0 голосов
/ 15 апреля 2010

Я не знаю, имеете ли вы какой-либо контроль над файлами Excel, но если у вас есть, вы можете сохранить файлы в формате XML. Таким образом, вы можете использовать XSLT / XPath для извлечения или преобразования данных в Excelml

0 голосов
/ 15 апреля 2010

Более новые версии Excel поддерживают файлы электронных таблиц на основе XML, которыми легко управлять.

Microsoft недавно выпустила полные спецификации для всех форматов двоичных файлов Office, но их реализация - это полное излишество для ваших нужд.

Вы можете использовать сторонние инструменты преобразования для преобразования файлов Excel в удобный для вас формат (при условии, что он может быть преобразован обратно в Excel).

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