AXForum  
Вернуться   AXForum > Microsoft Dynamics AX > DAX: Программирование
All
Забыли пароль?
Зарегистрироваться Правила Справка Пользователи Сообщения за день Поиск

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 23.01.2009, 13:10   #1  
Breeze is offline
Breeze
Участник
 
19 / 10 (1) +
Регистрация: 01.06.2007
Адрес: Омск
Ошибка при сохранении документа в MS Excel
Доброго времени суток!

Помогите разобраться, в чем ошибка:

X++:
comDocument = new ComExcelDocument_RU();
comDocument.newFile("c:\\test.xlt", false);
 
...
 
comDocument.documentSaveAsFinal("c:\\test2.xls");
comDocument.quitApplication(true);
После этого пытаюсь открыть файл c:\test2.xls и получаю ошибку

Цитата:
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  
coolibin is offline
coolibin
Участник
 
264 / 68 (3) ++++
Регистрация: 07.04.2005
Не знаю, что там может быть с методом documentSaveAsFinal(), у меня такого нет, но то же самое, но с применением метода documentSaveAs() у меня работает замечательно.
Старый 23.01.2009, 13:24   #3  
Gustav is offline
Gustav
Moderator
Аватар для Gustav
SAP
Лучший по профессии 2009
 
1,858 / 1152 (42) ++++++++
Регистрация: 24.01.2006
Адрес: Санкт-Петербург
Записей в блоге: 19
Текст самописного метода documentSaveAsFinal() - в студию!
Старый 23.01.2009, 13:39   #4  
Breeze is offline
Breeze
Участник
 
19 / 10 (1) +
Регистрация: 01.06.2007
Адрес: Омск
Цитата:
Не знаю, что там может быть с методом documentSaveAsFinal(), у меня такого нет, но то же самое, но с применением метода documentSaveAs() у меня работает замечательно.
Если использовать documentSaveAs() ситуация та же

А вы точно шаблон используете? Может в нем дело???
__________________
Step by step...
Старый 23.01.2009, 14:18   #5  
coolibin is offline
coolibin
Участник
 
264 / 68 (3) ++++
Регистрация: 07.04.2005
Цитата:
Сообщение от Breeze Посмотреть сообщение
Если использовать documentSaveAs() ситуация та же

А вы точно шаблон используете? Может в нем дело???
Да, шаблон. У вас сам шаблон-то точно открывается экселем?

ADD: И если "..." закомментарить, то работает?
Старый 23.01.2009, 14:35   #6  
Breeze is offline
Breeze
Участник
 
19 / 10 (1) +
Регистрация: 01.06.2007
Адрес: Омск
Если не вызывать DocumentSaveAs(), а visible(true), то все чудесно, даже если я никаких данных не заполняю на листе. А вот при попытке сохранения, чего-то ломается.

На самом деле я сохраняю документ для того, чтобы потом этот файл добавить в архив *.rar.

Есть еще идеи?
__________________
Step by step...
Старый 23.01.2009, 14:47   #7  
_scorp_ is offline
_scorp_
Участник
Аватар для _scorp_
MCBMSS
 
488 / 369 (13) ++++++
Регистрация: 25.07.2007
Адрес: Москва
оно?
Старый 23.01.2009, 14:52   #8  
petergunn is offline
petergunn
Участник
 
118 / 274 (10) ++++++
Регистрация: 30.08.2005
Адрес: Tyumen
Цитата:
Сообщение от Breeze Посмотреть сообщение
На самом деле я сохраняю документ для того, чтобы потом этот файл добавить в архив *.rar.
Есть еще идеи?
У Вас случаем не 2007 офис стоит? Если он то по умалчанию файл сохраняется в новом формате и расширение ему назначается xlsx ( а не xls - как вы явно пытаетесь указать)
Попробуйте сохранить без указания расширения:
X++:
comDocument.documentSaveAs("c:\\test2");
и посмотрите какое расширение файлу назначит Excel.
Старый 23.01.2009, 15:01   #9  
Breeze is offline
Breeze
Участник
 
19 / 10 (1) +
Регистрация: 01.06.2007
Адрес: Омск
Вот, что получается:
несмотря на расширение *.xls, которое я задаю при сохранение, класс ComExcelDocument_RU сохраняет файл в версии MS Excel 2007. В этом можно убедиться, если поменять расширение полученного файла на *.xlsx

Как при сохранении указать и версию Excel? И вообще возможно ли это?
__________________
Step by step...
Старый 23.01.2009, 15:02   #10  
Breeze is offline
Breeze
Участник
 
19 / 10 (1) +
Регистрация: 01.06.2007
Адрес: Омск
Вы правы, petergunn. Стоит и 2003, и 2007 MS Office
__________________
Step by step...
Старый 23.01.2009, 15:05   #11  
Breeze is offline
Breeze
Участник
 
19 / 10 (1) +
Регистрация: 01.06.2007
Адрес: Омск
Т.о. можно не указывать расширение при сохранении документа, и файл будет создан по последней версии(в данном случае 2007).

А все таки можно как-то версию указывать принудительно? Office же позволяет при сохранении...
__________________
Step by step...
Старый 23.01.2009, 15:22   #12  
_scorp_ is offline
_scorp_
Участник
Аватар для _scorp_
MCBMSS
 
488 / 369 (13) ++++++
Регистрация: 25.07.2007
Адрес: Москва
Пользуйтесь MSDN В этом методе правильно задайте параметр FileFormat

Последний раз редактировалось _scorp_; 23.01.2009 в 15:29.
Старый 23.01.2009, 15:23   #13  
petergunn is offline
petergunn
Участник
 
118 / 274 (10) ++++++
Регистрация: 30.08.2005
Адрес: Tyumen
Цитата:
Сообщение от Breeze Посмотреть сообщение
А все таки можно как-то версию указывать принудительно? Office же позволяет при сохранении...
Цитата:
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  
Breeze is offline
Breeze
Участник
 
19 / 10 (1) +
Регистрация: 01.06.2007
Адрес: Омск
Можно также использовать функцию ComExcelDocument_RU::excelVersion()

Спасибо всем большое!!! Теперь все ок)))
__________________
Step by step...
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Шаблоны MS Word, MS Excel bobski DAX: Программирование 2 12.12.2008 14:35
Работа с Excel через COM и ошибка 0x800A03EC (Range.AutoFilter) gl00mie DAX: Программирование 15 30.03.2007 18:37
Ошибка Excel Dimitry DAX: Программирование 21 11.07.2005 09:39
Ошибка при сохранении поставщика Filip DAX: Функционал 19 24.02.2004 08:32
Русская локализация Axapta 3 ? SlavaK DAX: Администрирование 59 01.07.2003 22:38

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 07:11.