Код:
Func _SaveXLSX($sFilePath, $array, $SColumn, $SRow)
$hStarttime = _Timer_Init()
ProgressOn("Сохранение файла MS Excel", "Подождите, идет работа", "Working...")
Local $oExcel = _Excel_Open(False, False, False, False, True) ; создать объект Excel, False = невидимый
If @error Then
ProgressOff()
MsgBox($MB_SYSTEMMODAL, "Ошибка", "Не удалось запустить Excel. На компьютере установлен MS Excel?", 0, $MB_OK) ; выйти, если не удалось создать объект Excel
Return
EndIf
ProgressSet(20, "MS Excel успешно инициализирован")
ProgressSet(25, "Создание файла")
If FileExists($sFilePath) Then
Local $oWorkbook = _Excel_BookOpen($oExcel, $sFilePath, False, False)
Else
Local $oWorkbook = _Excel_BookNew($oExcel, 1)
_Excel_BookSaveAs($oWorkbook, $sFilePath)
EndIf
If @error Then
ProgressOff()
_Excel_Close($oExcel)
MsgBox($MB_SYSTEMMODAL, "Ошибка", "Не удалось создать файл. Причина неизвестна", 0, $MB_OK) ; выйти, если не удалось создать объект Excel
Return
EndIf
ProgressSet(30, "Файл успешно создан")
ProgressSet(35, "Заполнение файла")
_Excel_RangeWrite($oWorkbook, Default, $array, _ExcelColumnLetter($SColumn) & $SRow)
If @error Then
ProgressOff()
_Excel_BookSave($oWorkbook)
_Excel_BookClose($oWorkbook)
_Excel_Close($oExcel)
MsgBox($MB_SYSTEMMODAL, "Ошибка", "Не удалось завершить операцию.", 0, $MB_OK) ; выйти, если не удалось создать объект Excel
Return
EndIf
ProgressSet(95, "Операция выполнена успешно, открываем шаблон")
ProgressSet(100, "Операция выполнена успешно, открываем шаблон")
ProgressOff()
_Excel_BookSave($oWorkbook)
_Excel_BookClose($oWorkbook)
_Excel_Close($oExcel)
$oExcel = "" ;clean var
; GUICtrlSetData($progress, "Выгрузка шаблона MS Excel произведена успешно, время выгрузки - " & Round(_Timer_Diff($hStarttime) / 1000, 2) & " c.")
EndFunc ;==>_SaveXLSX