|
28.07.2021, 01:00 | #1 |
Участник
|
DAX2012: Еще раз про Excel в пакете
Добрый день всем.
Есть у нас класс по работе с Excel через .Net, несколько лет формируем через него отчеты для пользователей, но встала недавно задача запустить формирование Excel в пакете. Теперь к сути вопроса. Есть объекты: X++: Microsoft.Office.Interop.Excel.WorkbookClass workbook; Microsoft.Office.Interop.Excel.Worksheets workSheets; X++: workSheets = workbook.get_Worksheets(); Код: Unable to cast COM object of type 'System.__ComObject' to interface type 'Microsoft.Office.Interop.Excel.Worksheets'. This operation failed because the QueryInterface call on the COM component for the interface with IID '{000208B1-0000-0000-C000-000000000046}' failed due to the following error: No such interface supported (Exception from HRESULT: 0x80004002 (E_NOINTERFACE)). PS: про SysExcel через .Net темы видел, но хотелось бы запустить уже существующий работающий класс в пакете. |
|
28.07.2021, 08:25 | #2 |
Участник
|
|
|
28.07.2021, 17:42 | #3 |
Участник
|
У вас какой класс в пакете крутится, тот и Excel формирует?
|
|
28.07.2021, 22:34 | #4 |
Участник
|
сейчас так: есть два класса - класс-пакетник и наш универсальный класс (NetExcel), с помощью которого работаем с Excel-файлами. В отдельном методе пакетного класса с помощью NetExcel формируется Excel-файл.
Можно логику по формированию Excel в отдельный класс вынести но пока на уровне тестов так. |
|
29.07.2021, 12:30 | #5 |
Участник
|
Через ADO работает нормально и на клиенте и в CIL
__________________
--- SHiSHok |
|
30.07.2021, 06:58 | #6 |
Участник
|
Тупой, наверно, вопрос: а на сервере ничего доустановить не пробовали? .NET какой-нибудь версии, библиотеку какую-нибудь для офиса?
|
|
05.08.2021, 23:39 | #7 |
Участник
|
Всем спасибо за советы, помогло разобраться с проблемами разбор SysExcel, переделанного под .Net
|
|
06.08.2021, 06:24 | #8 |
Участник
|
Так написали бы решение на будущее
|
|
06.08.2021, 08:29 | #9 |
Участник
|
Предполагаю, что поменяли тип по worksheets, возможно исправили ещё пару вызовов в своём классе, изначально Microsoft.Office.Interop.Excel.WorkbookClass возвращает коллекцию Microsoft.Office.Interop.Excel.Sheets, поэтому в CIL и валится ошибка про преобразование типов.
X++: //Microsoft.Office.Interop.Excel.Worksheets workSheets;
Microsoft.Office.Interop.Excel.Sheets workSheets;
__________________
Sergey Nefedov |
|
|
За это сообщение автора поблагодарили: Logger (3), S.Kuskov (5). |
06.08.2021, 20:45 | #10 |
Участник
|
Цитата:
Сообщение от SRF
Предполагаю, что поменяли тип по worksheets, возможно исправили ещё пару вызовов в своём классе, изначально Microsoft.Office.Interop.Excel.WorkbookClass возвращает коллекцию Microsoft.Office.Interop.Excel.Sheets, поэтому в CIL и валится ошибка про преобразование типов.
X++: //Microsoft.Office.Interop.Excel.Worksheets workSheets;
Microsoft.Office.Interop.Excel.Sheets workSheets; X++: //Microsoft.Office.Interop.Excel.WorksheetClass worksheet;
Microsoft.Office.Interop.Excel._Worksheet worksheet; |
|
|
|