07.06.2016, 16:37 | #1 |
Участник
|
Excel с макросами
Добрый день.
Excel-евский отчет формируется из шаблона с расширением .xltm . Необходимо сохранить отчет в папку temp с типом файла xlsm . При простом сохранении выдает окошко (рис1), по нажатию Нет выдает ошибку (рис 2) Само сохранение проходит так : X++: tempDirectory = endSlash(System.IO.Path::GetTempPath()); filename = logistCostsTable_ZTR.BudgetCode + ', ' + logistCostsTable_ZTR.showObjectDlv() + ', ' + strReplace(logistCostsTable_ZTR.showProductName(),'/','.'); excel.documentSaveAs(tempDirectory + filename + '.xlsm'); Надежд на просветление не особо, решилась просить помощи у Великих и Могучих |
|
07.06.2016, 22:42 | #2 |
Участник
|
Добрый день!
Дело в том, что excel.documentSaveAs, так понимаю это COMExcelDocument_RU, в качестве параметра принимает только одну переменную, наименование файла. То, что Вы задаёте расширение файла ".xlsm" не влияет на структуру данных и фактически сохранение выполняется в xlsx. Если заглянуть в метод documentSaveAs можно увидеть: X++: m_comDocument.saveAs(_filenameSave); Нужно передавать вторую переменную код формата, можно взять отсюда: https://msdn.microsoft.com/en-us/lib.../ff198017.aspx По идее, должно получиться: X++: m_comDocument.saveAs(_filenameSave, 52); Последний раз редактировалось Товарищ ♂uatr; 07.06.2016 в 22:57. |
|
|
За это сообщение автора поблагодарили: Emka (1). |
08.06.2016, 05:58 | #3 |
Мрачный тип
|
Макрос Excel, группа констант File Formats, #xlOpenXMLWorkbookMacroEnabled
__________________
Мы летаем, кружимся, нагоняем ужасы ... |
|
|
За это сообщение автора поблагодарили: Товарищ ♂uatr (1), Emka (1). |
Теги |
excel, xltm |
|
|