_ExcelNumberFormat
Устанавливает для диапазона ячеек активного листа открытой рабочей книги Excel формат содержащихся в ячейках данных.
#include <Excel.au3>
_ExcelNumberFormat($oExcel, $sFormat, $sRangeOrRowStart [, $iColStart = 1 [, $iRowEnd = 1 [, $iColEnd = 1]]])
Параметры
$oExcel | Ссылка на COM-объект "Excel.Application" полученная ранее вызванными _ExcelBookOpen(), _ExcelBookNew(), или _ExcelBookAttach()
Внимание!!! Метод использует условные координаты диапазона - координаты верхней левой и нижней правой ячеек (формат ссылок R1C1) Параметры $sRangeOrRowStart, $iColStart, $iRowEnd, $iColEnd описывают условные координаты этих ячеек. |
$sFormat |
Строка символов условно обозначающих формат содержащихся в ячейке данных (см. примечание) Внимание!!! обозначения форматов сильно разнятся для MS Office 2007-2010 и MS Office 2003, а так же в зависимости от того русифицированная ли версия или англоязычная (см.Примеры) |
$sRangeOrRowStart |
Номер строки верхней левой ячейки целевого диапазона |
$iColStart |
[необязательный]Номер столбца верхней левой ячейки целевого диапазона (по умолчанию=1) |
$iRowEnd |
[необязательный]Номер строки нижней правой ячейки целевого диапазона (по умолчанию=1) |
$iColEnd |
[необязательный]Номер столбца нижней правой ячейки целевого диапазона(по умолчанию=1) |
Возвращаемое значение
Успех: | Возвращает 1 |
Ошибка: | Возвращает 0, Устанавливает значение флага ошибки @error: |
@error: | 0 - Скрипт завершил работу без ошибок |
1 - Ошибка OLE/COM ($oExcel), возможно указанный объект не существует | |
2 - Значение строки\столбца верхней левой ячейки целевого диапазона не является числом, или недопустимо | |
3 - Значение строки\столбца нижней правой ячейки целевого диапазона не является числом, или недопустимо | |
@extended: | 0 - Ошибка в значении строки |
1 - Ошибка в значении столбца |
Примечания
Условные обозначения для стандартных форматов (Standard Numeric Format Strings)Пример
; ***************************************************************
; Пример 1 - Изменение формата данных в целевом диапазоне ячеек MS Office 2007-2010
; ***************************************************************
#include <Excel.au3>
Local $oExcel = _ExcelBookNew() ;Создаем новую рабочую книгу
; Циклически заполняем диапазон ячеек случайными числами
For $y = 1 To 10
For $x = 1 To 10
_ExcelWriteCell($oExcel, Random(1000, 10000), $x, $y) ;Записываем в ячейку случайное целое число из диапазона от 1000 до 100000
Next
Next
$sFormat = "[$-F800]dddd, mmmm dd, yyyy" ; "[$-F800]dddd, mmmm dd, yyyy" - условное строковое обозначение формата "long date" (длинная дата)
_ExcelNumberFormat($oExcel, $sFormat, 1, 1, 5, 5) ; диапазон форматирования определен верхней-левой ячейкой(строка=1,столбец=1) и нижней-левой ячейкой(строка=5,столбец=5)
MsgBox(4096, "_ExcelNumberFormat | Пример 1", "Демонстрация для MS Office 2007-2010 завершена, нажмите ОК")
_ExcelBookSaveAs($oExcel, @TempDir & "\Temp.xls", "xls", 0, 1) ; Сохраняем файл в директории временных файлов, перезаписывая если необходимо.
_ExcelBookClose($oExcel) ; Закрываем рабочую книгу
; ***************************************************************
; Пример 2 - Изменение формата данных в целевом диапазоне ячеек MS Office 2003
; ***************************************************************
#include <Excel.au3>
Local $oExcel = _ExcelBookNew() ;Создаем новую рабочую книгу
; Циклически заполняем диапазон ячеек случайными числами
For $y = 1 To 10
For $x = 1 To 10
_ExcelWriteCell($oExcel, Random(1000, 10000), $x, $y) ;Записываем в ячейку случайное целое число из диапазона от 1000 до 100000
Next
Next
$sFormat = "$# ##0.00$" ; "$# ##0.00$" - условное строковое обозначение формата "currency" (Валюта)
_ExcelNumberFormat($oExcel, $sFormat, 1, 1, 5, 5) ; диапазон форматирования определен верхней-левой ячейкой(строка=1,столбец=1) и нижней-левой ячейкой(строка=5,столбец=5)
MsgBox(4096, "_ExcelNumberFormat | Пример 2", "Демонстрация для MS Office 2003 завершена, нажмите ОК")
_ExcelBookSaveAs($oExcel, @TempDir & "\Temp.xls", "xls", 0, 1) ; Сохраняем файл в директории временных файлов, перезаписывая если необходимо.
_ExcelBookClose($oExcel) ; Закрываем рабочую книгу