Что нового

Excel.au3 функция _ExcelBookSaveAs; работа с xml-форматами Office 2007-2010

RUVATA

лучше один раз увидеть, чем десять раз услышать...
Сообщения
132
Репутация
38
UDF Excel.au3 ориентирован на Office Excel 2003, потому функцией _ExcelBookSaveAs сохранение документов в xml-форматах Office 2007-2010 не предусмотренно это можно исправить:

Код:
;*************************************************************************************************
;Пример 3 - Модификация Excel.au3, для использования в методе _ExcelBookSaveAs форматов MS Office Excel 2007-2010
;*************************************************************************************************
;В данном коде описываются лишь некоторые из форматов доступных для сохранения рабочей книги в MS Office Excel 2007-2010
;Все остальные форматы вы можете описать по аналогии, для этого посетите MSDN в разделе Visual Basic for Applications
;найдите описания констанант форматов и их числовые эквиваленты ( "http://msdn.microsoft.com/en-us/library/microsoft.office.interop.excel.xlfileformat.aspx" )
;после чего добавьте константы с соответствующими числовыми значениями в Excel.au3, и используйте их в этом коде по аналогии
;
;Откройте Excel.au3, к описанию констант добавьте 
Global Const $xlExcel12 = 50 ; расширение xlsb (Excel Binary Workbook in 2007-2010 with or without macro's) 
Global Const $xlOpenXMLWorkbook = 51 ; расширение xlsx (xlOpenXMLWorkbook without macro's in 2007-2010)
Global Const $xlOpenXMLWorkbookMacroEnabled = 52 ; расширение xlsm (xlOpenXMLWorkbookMacroEnabled with or without macro's in 2007-2010)
Global Const $xlExcel8 = 56 ;расширение xls (xlExcel8 97-2003 format in Excel 2007-2010)

;перейдите на строку № 339 и замените блок IF - Else - EndIf следующим кодом 
If $sType = "xls" Or $sType = "csv" Or $sType = "txt" Or $sType = "template" Or $sType = "html" Or $sType = "xlsb" Or $sType = "xlsx" Or $sType = "xlsm" then 
        If $sType = "xls" Then $sType = $xlExcel8
        If $sType = "csv" Then $sType = $xlCSVMSDOS
        If $sType = "txt" Then $sType = $xlTextWindows
        If $sType = "template" Then $sType = $xlTemplate
        If $sType = "html" Then $sType = $xlHtml
        If $sType = "xlsx" Then $sType = $xlOpenXMLWorkbook 
        If $sType = "xlsm" Then $sType = $xlOpenXMLWorkbookMacroEnabled
        If $sType = "xlsb" Then $sType = $xlExcel12
Else
    Return SetError(2, 0, 0)
EndIf


Я хотел бы обратиться на офф.сайт, но че-то ни как не "въеду" что и куда писать - Need help...
 
Верх