#asp.net #vb.net #excel #vba
#asp.net #vb.net #excel #vba
Вопрос:
Я пытаюсь открыть файл Excel, чтобы получить и установить некоторые значения. К сожалению, у меня нет выбора, я должен работать с Excel.
Dim xAp As New Microsoft.Office.Interop.Excel.Application
Dim xWkb As Microsoft.Office.Interop.Excel.Workbook
xWkb = xAp.Workbooks.Open("c:uploadsteste.xls")
У меня всегда возникает это исключение: (Exception from HRESULT: 0x80010105 (RPC_E_SERVERFAULT))
Нужно ли устанавливать Excel на серверном компьютере, чтобы открывать файлы Excel? Я так не думаю, потому что, когда я создаю новое приложение и книгу с помощью кода, все идет правильно, но … это возможно…
Спасибо за помощь.
Ответ №1:
Да, вам нужен Excel, установленный на сервере, чтобы открывать файлы Excel с помощью COM-взаимодействия. Это не рекомендуется, и я бы рекомендовал использовать стороннюю библиотеку для доступа к данным в файлах Excel. Вы также можете попробовать поместить данные в формат, более простой для работы с CSV, хотя вы заявили, что это может быть невозможно.
Комментарии:
1. Не могли бы вы, пожалуйста, порекомендовать мне стороннюю библиотеку для выполнения этой задачи? Если это бесплатно, то лучше… И знаете ли вы, почему я могу создать новый файл Excel и работать с ним, и я не могу просто открыть существующий файл в объекте? Спасибо…
2. Я бы рекомендовал spreadsheetgear, хотя это не бесплатно. Не уверены в том, как вы можете создать файл без установленного Excel, используете ли вы File. Создать?
3. Автоматизация на стороне сервера НЕ поддерживается: смотрите этот КБ: support.microsoft.com/en-us/kb/257757 мой совет заключался бы в использовании ClosedXML