Чтение онлайн

ЖАНРЫ

Windows Script Host для Windows 2000/XP

Попов Андрей Викторович

Шрифт:

Затем в сценарии выставляется необходимая ширина трех первых колонок (здесь мы будем печатать имя, фамилию и номер телефона). Для этого следует присвоить нужные значения свойству

ColumnWidth
соответствующих элементов коллекции
Columns
:

//Устанавливаем нужную ширину колонок

XL.Columns(1).ColumnWidth = 40;

XL.Columns(2).ColumnWidth = 40;

XL.Columns(3).ColumnWidth = 10;

Заголовок отчета (названия столбцов) печатается в функции

TopReport
:

//Вывод
заголовка отчета

function TopReport {

//Печатаем в ячейки текст

 XL.Cells(1,1).Value="Фамилия";

 XL.Cells(1,2).Value="Имя";

 XL.Cells(1,3).Value="Телефон";

 //Выделяем три ячейки

 XL.Range("A1:C1").Select;

 //Устанавливаем полужирный текст для выделенного диапазона

 XL.Selection.Font.Bold = true;

 //Устанавливаем выравнивание по центру для выделенного диапазона

 XL.Selection.HorizontalAlignment=xlCenter;

}

Как мы видим, доступ к ячейке можно получить с помощью свойства

Сells
объекта
Application
, указав в круглых скобках индексы строки и столбца, на пересечении которых находится данная ячейка (нумерация строк и столбцов начинается с единицы). Свойство
Value
соответствует содержимому ячейки.

Так как названия столбцов должны быть выделены полужирным шрифтом и выровнены по центру, мы в функции

TopReport
с помощью метода
Select
объекта
Range
сначала выделяем сразу три ячейки ("
A1
", "
B1
" и "
С1
"):

//Выделяем три ячейки XL.Range("A1:C1").Select;

а затем устанавливаем необходимые свойства у объекта

Selection
, который соответствует выделенному диапазону:

//Устанавливаем полужирный текст для выделенного диапазона

XL.Selection.Font.Bold = true;

//Устанавливаем выравнивание по центру для выделенного диапазона

XL.Selection.HorizontalAlignment=xlCenter;

Как и во всех предыдущих сценариях этой главы, данные из файла book.xml посредством функции

FileToArray
заносятся в массив
PersonArr
. Содержимое этого массива сортируется по фамилии и выводится в рабочую книгу Excel в функции
ListPersonArray
(этот шаг также является одинаковым во всех сценариях):

//Сортировка массива и печать его содержимого

function ListPersonArray {

 var i;

 //Сортировка массива по фамилии

 PersonArr.sort(SortLastName);

 for (i=0;i<=PersonArr.length-1;i++) {

PrintPerson(PersonArr[i]);

 }

}

В функции P

rintPerson(PersRec)
происходит печать фамилии, имени и номера телефона для одной записи
PersRec
(напомним,
что эта запись является экземпляром объекта
Person
). Для этого нужно определить номер строки, в ячейки которой будут записаны данные, что делается с помощью увеличения значения счетчика количества записей
NomRec
:

//Печать содержимого полей объекта Person

function PrintPerson(PersRec) {

 //Увеличиваем счетчик количества записей

 NomRec++;

 //В первом столбце печатаем фамилию

 XL.Cells(NomRec+1,1).Value=PersRec.LastName;

 //Во втором столбце печатаем имя

 XL.Cells(NomRec+1,2).Value=PersRec.Name;

 //В третьем столбце печатаем телефон

 XL.Cells(NomRec+1,3).Value=PersRec.Phone;

}

Полностью текст сценария ListXLS.wsf приведен в листинге 8.3.

Листинг 8.3. Вывод данных из XML-файла в таблицу Microsoft Excel

<package>

<job id="list_xl">

<runtime>

<description>

Имя: ListXLS.wsf

Описание: Печать данных из записной книжки в Microsoft Excel

</description>

</runtime>

<reference object="Excel.Sheet"/>

<script language="JScript">

var

 WshShell, //Экземпляр объекта WshShell

 BasePath, //Путь к текущему каталогу

 PathBook, //Путь к файлу с данными

 PathOut, //Путь к выходному файлу Winword

 XL, //Экземпляр объекта Application

 NomRec=0, //Счетчик количества записей

 PersonRec, //Объект для хранения данных об одном человеке

 PersonArr; //Массив для хранения объектов PersonRec

//Построение путей к файлам

function InitPath {

 var BasePath;

 BasePath=WshShell.CurrentDirectory+"\\";

 //Путь к файлу с данными

 PathBook=BasePath+"book.xml",

 //Путь к выходному файлу

 PathOut=BasePath+"out.xml";

}

//Конструктор объекта Person

function Person(LastName,Name,Phone,Street,House,App,Note) {

 this.LastName=LastName; //Фамилия

 this.Name=Name; //Имя

 this.Phone=Phone; //Телефон

 this.Street=Street; //Улица

 this.House=House; //Дом

Поделиться с друзьями: