![]() |
#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 темы видел, но хотелось бы запустить уже существующий работающий класс в пакете. |
|
![]() |
#2 |
Участник
|
|
|
![]() |
#3 |
Участник
|
У вас какой класс в пакете крутится, тот и Excel формирует?
|
|
![]() |
#4 |
Участник
|
сейчас так: есть два класса - класс-пакетник и наш универсальный класс (NetExcel), с помощью которого работаем с Excel-файлами. В отдельном методе пакетного класса с помощью NetExcel формируется Excel-файл.
Можно логику по формированию Excel в отдельный класс вынести но пока на уровне тестов так. |
|
![]() |
#5 |
Участник
|
Через ADO работает нормально и на клиенте и в CIL
__________________
--- SHiSHok |
|
![]() |
#6 |
Участник
|
Тупой, наверно, вопрос: а на сервере ничего доустановить не пробовали? .NET какой-нибудь версии, библиотеку какую-нибудь для офиса?
|
|
![]() |
#7 |
Участник
|
Всем спасибо за советы, помогло разобраться с проблемами разбор SysExcel, переделанного под .Net
|
|
![]() |
#8 |
Участник
|
Так написали бы решение на будущее
|
|
![]() |
#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). |
![]() |
#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; |
|
|
Опции темы | Поиск в этой теме |
Опции просмотра | |
|