19.08.2010, 13:23 | #1 |
Участник
|
Вывод в Excel на сервере
Есть задача -
На сервере открыть файл шаблона Excel, записать туда что-нибудь, сохранить На 3.0, 4.0 все работало отлично На 2009 не работает. Объект Application создается, но при попытке открытия файла появляется ошибка Method 'add' in COM object of class 'Workbooks' returned error code 0x800A03EC (<unknown>) which means: Нет доступа к файлу 'c:\MyData\test.xlsx' При изменении запуска класса на client все работает. АОС и Клиент установленны на одной машине, работают под одним пользователем(администратором). С чем вообще может быть связана такая ошибка? Если это принципиально не возможно, то Microsoft конечно подложило большую свинью, так как пользователи практически всех веб-порталов любили всякие модификации, которые генерят ексельки на портале Пример кода для воспроизведения: X++: static server void openFile() { COM comWorkBooks; COMVariant varTemlateName; COM m_comApplication; // COM interface to MS Office application COM m_comDocument; // COM interface to MS Office documnet str template = 'c:\\MyData\\test.xlsx'; Set permissionSet; ; permissionSet = new Set(Types::Class); permissionSet.add(new FileIoPermission(template,'rw')); permissionSet.add(new InteropPermission(InteropKind::ComInterop)); CodeAccessPermission::assertMultiple(permissionSet); m_comApplication = new COM('Excel.Application'); m_comApplication.Visible(false); comWorkBooks = m_comApplication.workBooks(); varTemlateName = new COMVariant(COMVariantInOut::IN, COMVariantType::VT_BSTR); varTemlateName.bStr(template); m_comDocument = comWorkBooks.add(varTemlateName); info('ok'); } Последний раз редактировалось trud; 19.08.2010 в 13:26. |
|
Теги |
excel |
|
Опции темы | Поиск в этой теме |
Опции просмотра | |
|