2012-01-25 4 views
0

Привет, я использую код C# для создания xlsx-файла. я добавил ссылку на мой bin для Microsoft.Office.Interop.Excel Version 12.0.0.0Создание xlsx-файла из кода asp.net

Это работает нормально на моей локальной машине. Но когда я загружаю его на сервер, он выдает ошибку на странице, где я создаю файл xlsx «Извлечение фабрики COM-класса для компонента с CLSID {00024500-0000-0000-C000-000000000046} не удалось из-за следующей ошибки : 80040154 Класс не зарегистрирован (исключение из HRESULT: 0x80040154 (REGDB_E_CLASSNOTREG)) " может кто-нибудь плз помочь

+0

Как говорит Бен Робинсон, эта ошибка будет означать, что Excel не установлен на сервере. Одна вещь, которую вы могли бы сделать, чтобы удалить эту зависимость, если это вариант, заключается в создании CSV вместо xlsx; это открытый формат и может быть открыт и обработан Excel. –

+1

В общем, вы не должны использовать автоматизацию Excel на сервере. Там много библиотек [в этом вопросе] (http://stackoverflow.com/questions/151005/create-excel-xls-and-xlsx-file-from-c-sharp), которые вы можете использовать вместо этого. – Rup

ответ

3

Вы получаете сообщение об ошибке, потому что Excel не установлен на сервере..

1

Вы не должны автоматизировать Office в ASP.NET. Это может привести к множеству проблем производительности и масштаба на вашем сервере. Сам Office предназначен для интерактивного использования рабочего стола, а не для автоматического выполнения в приложении, отличном от GUI. Вот авторитетная справка из MS по этому вопросу:

http://support.microsoft.com/kb/257757

С этим, как говорится, есть сторонние библиотеки, разработанные специально для манипулирования Excel в ASP.NET. OfficeWriter один пример:

http://www.officewriter.com

+0

+1: Я не могу это подчеркнуть – NotMe

Смежные вопросы