23.01.2009, 13:10 | #1 |
Участник
|
Ошибка при сохранении документа в MS Excel
Доброго времени суток!
Помогите разобраться, в чем ошибка: X++: comDocument = new ComExcelDocument_RU(); comDocument.newFile("c:\\test.xlt", false); ... comDocument.documentSaveAsFinal("c:\\test2.xls"); comDocument.quitApplication(true); Цитата:
The file you are trying to open, 'test2.xls', is in a different format than specified by the file extension
__________________
Step by step... |
|
23.01.2009, 13:19 | #2 |
Участник
|
Не знаю, что там может быть с методом documentSaveAsFinal(), у меня такого нет, но то же самое, но с применением метода documentSaveAs() у меня работает замечательно.
|
|
23.01.2009, 13:24 | #3 |
Moderator
|
Текст самописного метода documentSaveAsFinal() - в студию!
|
|
23.01.2009, 13:39 | #4 |
Участник
|
Цитата:
Не знаю, что там может быть с методом documentSaveAsFinal(), у меня такого нет, но то же самое, но с применением метода documentSaveAs() у меня работает замечательно.
А вы точно шаблон используете? Может в нем дело???
__________________
Step by step... |
|
23.01.2009, 14:18 | #5 |
Участник
|
|
|
23.01.2009, 14:35 | #6 |
Участник
|
Если не вызывать DocumentSaveAs(), а visible(true), то все чудесно, даже если я никаких данных не заполняю на листе. А вот при попытке сохранения, чего-то ломается.
На самом деле я сохраняю документ для того, чтобы потом этот файл добавить в архив *.rar. Есть еще идеи?
__________________
Step by step... |
|
23.01.2009, 14:47 | #7 |
Участник
|
|
|
23.01.2009, 14:52 | #8 |
Участник
|
Цитата:
Попробуйте сохранить без указания расширения: X++: comDocument.documentSaveAs("c:\\test2"); |
|
23.01.2009, 15:01 | #9 |
Участник
|
Вот, что получается:
несмотря на расширение *.xls, которое я задаю при сохранение, класс ComExcelDocument_RU сохраняет файл в версии MS Excel 2007. В этом можно убедиться, если поменять расширение полученного файла на *.xlsx Как при сохранении указать и версию Excel? И вообще возможно ли это?
__________________
Step by step... |
|
23.01.2009, 15:02 | #10 |
Участник
|
Вы правы, petergunn. Стоит и 2003, и 2007 MS Office
__________________
Step by step... |
|
23.01.2009, 15:05 | #11 |
Участник
|
Т.о. можно не указывать расширение при сохранении документа, и файл будет создан по последней версии(в данном случае 2007).
А все таки можно как-то версию указывать принудительно? Office же позволяет при сохранении...
__________________
Step by step... |
|
23.01.2009, 15:22 | #12 |
Участник
|
Пользуйтесь MSDN В этом методе правильно задайте параметр FileFormat
Последний раз редактировалось _scorp_; 23.01.2009 в 15:29. |
|
23.01.2009, 15:23 | #13 |
Участник
|
Цитата:
Цитата:
51 = xlOpenXMLWorkbook (without macro's in 2007, xlsx)
52 = xlOpenXMLWorkbookMacroEnabled (with or without macro's in 2007, xlsm) 50 = xlExcel12 (Excel Binary Workbook in 2007 with or without macro’s, xlsb) 56 = xlExcel8 (97-2003 format in Excel 2007, xls) X++: COM comObjectDocument ;
#define.xlExcel8(56)
...
comObjectDocument = comDocument.getComDocument() ;
comObjectDocument.saveAs( "c:\\test", #xlExcel8 ) ;
... |
|
|
За это сообщение автора поблагодарили: AvrDen (1), PavelSR (1), decoder (1). |
23.01.2009, 15:48 | #14 |
Участник
|
Можно также использовать функцию ComExcelDocument_RU::excelVersion()
Спасибо всем большое!!! Теперь все ок)))
__________________
Step by step... |
|
|
Похожие темы | ||||
Тема | Ответов | |||
Шаблоны MS Word, MS Excel | 2 | |||
Работа с Excel через COM и ошибка 0x800A03EC (Range.AutoFilter) | 15 | |||
Ошибка Excel | 21 | |||
Ошибка при сохранении поставщика | 19 | |||
Русская локализация Axapta 3 ? | 59 |
|