Member 10194266 Ответов: 2

Получение фабрики COM-класса для компонента с CLSID {00024500-0000-0000-C000-000000000046} не удалось из-за следующей ошибки: 80040154


У МЕНЯ ЕСТЬ 64 БИТНАЯ ОС И ПРИЛОЖЕНИЕ 2005 .NET

ПОЭТОМУ Я ХОЧУ ЗАГРУЗИТЬ ФАЙЛ EXCEL И СОХРАНИТЬ ЕГО В БАЗЕ ДАННЫХ , МОЯ ВЕРСИЯ EXCEL-2016
И
Взаимодействие.Microsoft.Офис.Взаимодействие.Версия файла Excel -1.6.0.0


Ошибка : получение фабрики COM-класса для компонента с CLSID {00024500-0000-0000-C000-000000000046} не удалось из-за следующей ошибки: 80040154

ОШИБКА В ПРИВЕДЕННОМ НИЖЕ КОДЕ
Dim xlApp как Excel.Приложение

xlApp = новый Excel.ApplicationClass

Что я уже пробовал:

If FileUpload1.HasFile Then


            Dim xlApp As Excel.Application
        

            txtRecivedDate.Text = Date.Now.ToString("ddmmyyhhmmss")
            Dim FileName As String = Path.GetFileName(FileUpload1.PostedFile.FileName)
            Dim Extension As String = Path.GetExtension(FileUpload1.PostedFile.FileName)
            Dim FolderPath As String = ConfigurationManager.AppSettings("FolderPath")
            Dim FilePath As String = Server.MapPath(FolderPath & "PLPS" & txtRecivedDate.Text & Extension)





            FileUpload1.SaveAs(FilePath)
            WSheet = ""
          
            xlApp = New Excel.ApplicationClass

2 Ответов

Рейтинг:
1

Dave Kreskowiak

Причина, по которой появляется сбой COM, заключается в том, что Office не установлен.

Но вы не можете использовать Office Interop в веб-приложении. Он будет работать на вашем компьютере разработчика, но как только вы загрузите веб-приложение на хост и начнете использовать его несколько раз, он потерпит неудачу.

Для извлечения данных необходимо использовать библиотеку, которая не зависит от установленного Office. Если данные на листе Excel представлены в табличном формате, вы используете методы OleDb (database) для получения данных, рассматривая свой лист Excel как рудиментарную таблицу базы данных.

Если данные находятся в определенных ячейках, вам нужно будет использовать что-то вроде OpenXML SDK, чтобы получить данные в ячейках.


Member 10194266

Спасибо Дэйв

Рейтинг:
0

Member 10194266

Извините, Речард , я уже сделал эту вещь, но ошибка снова показывает

Richard MacCutchan

См. ответ ниже.

Member 10194266

Спасибо Ричард