В настоящее время разбор и анализ таблиц Excel в программе TestComplete вызывает сложности при разработке тест-скриптов. Одним из вариантов решения данной проблемы может стать анализ таблиц Excel, сохраненных в XML-формате. MS Office позволяет сохранять таблицы в формате "Таблица XML". В данной статье мы рассмотрим возможность разбора и анализа таблиц в данном формате. Более подробную информацию о формате можно получить на сайте Microsoft. Информацию об использованных в этой статье методах и свойствах MS XML можно подчеркнуть из статьи Разбор и анализ XML-файла в TestComplete.
Создадим таблицу Excel, например, подобную этой:

При сохранении в XML формате данная таблица будет выглядеть следующим образом:
xmlns:o="urn:schemas-microsoft-com:office:office"xmlns:x="urn:schemas-microsoft-com:office:excel"xmlns:ss="urn:schemas-microsoft-com:office:spreadsheet"xmlns:html="http://www.w3.org/TR/REC-html40">Долганов Алексей Александрович Долганов Алексей Александрович 2010-07-13T09:35:04Z 12.00 11820 15315 120 45 False False
Молоко | 10 | Мясо | 50 | Яблоки | 20 | 9 600 600 False False
Структура XML-файла начинается с корневого элемента Workbook, обозначающего книгу. Перейдем к его дочерним элементам.
- DocumentProperties (Свойства документа). В этом элементе не содержится никаких данных из таблицы, поэтому этот элемент мы рассматривать не будем;
- ExcelWorkbook (Книга Excel). Также в этом элементе не содержится важной для нас информации, поэтому также пропускаем;
- Styles (Стили). Содержит форматирование таблицы. Расмотрим этот элемент вкратце. Будем считать что нам важнее сами данные, чем их форматирование;
- Worksheet (Лист). Данных элементов может быть несколько, в зависимости от количества листов в книге. Отобрать данные элементы можно с помощью XML-метода getElementsByTagName.
WorkSheet
Обязательные параметры:
- Ss:Name (Название листа).
Необязательные параметры:
- Ss:Protected (Информация о защите листа);
- Ss:RightToLeft (Направление текста).
Дочерние элементы:
- Table (Таблица). Данные;
- WorksheetOptions (Настройки). Не содержит данных. рассматриваться не будет.
Table
Обязательные параметры: нет
Необязательные параметры:
- Ss:DefaultColumnWidth (Ширина столбцов по умолчанию). Указывается в pt (1pt = 4/3px);
- Ss:DefaultRowHeight (Высота строк по умолчанию). Указывается в pt (1pt = 4/3px);
- Ss:ExpandedColumnCount (Общее число столбцов в этой таблице);
- Ss:ExpandedRowCount (Общее число строк в этой таблице);
- Ss:LeftCell (Начало таблицы слева);
- Ss:StyleID (Стиль таблицы). Ссылается на элемент Styles (подробнее ниже);
- Ss:TopCell (Начала таблицы сверху).
Дочерние элементы:
- Column (Столбцы);
- Row (Строки).
Column
Обязательные параметры: нет
Необязательные параметры:
- C:Caption (Заголовок);
- Ss:AutoFitWidth (Автоматическая ширина столбца). Истина если содержит значение 1;
- Ss:Hidden (Признак скрытия столбца);
- Ss:Index (Индекс столбца);
- Ss:Span (Количество столбцов с одинаковым форматированием);
- Ss:StyleID (Стиль столбца);
- Ss:Width (Ширина столбца). Указывается в pt (1pt = 4/3px).
Остановимся подробнее на параметрах ss:Index и ss:Span. Например, имеется 5 столбцов:
- Ширина 100pt;
- Ширина 20pt;
- Ширина 20pt;
- Ширина 20pt;
- Ширина 50pt.
В XML-файле столбцы должны быть описаны следующим образом:
Row
Обязательные параметры: нет
Необязательные параметры:
- C:Caption (Заголовок);
- Ss:AutoFitWidth (Автоматическая высота строки). Истина если содержит значение 1;
- Ss:Height (Высота строки). Указывается в pt (1pt = 4/3px);
- Ss:Hidden (Признак скрытия строки);
- Ss:Index (Индекс строки);
- Ss:Span (Количество строк с одинаковым форматированием);
- Ss:StyleID (Стиль строки).
Дочерние элементы:
- Cell (Ячейка).
Cell
Обязательные параметры:
Ss:Type (Тип ячейки). Возможные значения: Number (Числовой); DateTime (Дата и время); Boolean (Логический); String (Строковый); Error (Ошибка). Возможные значения: #NULL!; #DIV/0!; #VALUE!; #REF!; #NAME?; #NUM!; #N/A; #CIRC!
Необязательные параметры: нет
Дочерние элементы:
- B (Жирным);
- Font (Шрифт);
- I (Курсив);
- S (Зачеркнутый);
- Span (Форматированный);
- Sub (Верхний регистр);
- Sup (Нижний регистр);
- U (Подчеркивание).
Значение элемента: Значение ячейки