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

на главную - закладки

Жанры

Windows Script Host для Windows 2000/XP

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

Шрифт:

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; //Дом

 this.App=App; //Квартира

 this.Note=Note; //Примечание

}

//Определение значения тега tgName XML-элемента obj

function GetTagVal(obj, tgName) {

 var ElemList;

 //Создаем коллекцию дочерних для obj элементов, которые

 //задаются тегом tgName

 ElemList=obj.getElementsByTagName(tgName);

 //Проверяем, есть ли в коллекции ElemList элементы

 if (ElemList.length>0)

//Возвращаем значение тега tgName

return ElemList.item(0).text

 else return "";

}

//Заполнение нового элемента массива

function PersonToArray(XNode) {

 //Создаем новый экземпляр PersonRec объекта Person

 PersonRec=new Person;

 //Заполняем поля объекта PersonRec

 PersonRec.LastName=GetTagVal(XNode,"LastName");

 PersonRec.Name=GetTagVal(XNode,"Name");

 PersonRec.Phone=GetTagVal(XNode,"Phone");

 PersonRec.Street=GetTagVal(XNode,"Street");

 PersonRec.House=GetTagVal(XNode,"House");

 PersonRec.App=GetTagVal(XNode,"App");

 PersonRec.Note=GetTagVal(XNode,"Note");

 //Сохраняем объект PersonRec в массиве

 PersonArr[PersonArr.length]=PersonRec;

}

Поделиться:
Популярные книги

Острова

Орлов Алекс
5. Бронебойщик
Фантастика:
боевая фантастика
8.41
рейтинг книги
Острова

Чёрная магия (Сборник)

Гейман Нил
Шедевры фантастики
Фантастика:
фэнтези
6.40
рейтинг книги
Чёрная магия (Сборник)

Искатели приключений

Роббинс Гарольд
Проза:
классическая проза
8.33
рейтинг книги
Искатели приключений

Верность

Романовский Адриан Адамович
Приключения:
исторические приключения
морские приключения
5.00
рейтинг книги
Верность

Том 6 (доп.). История любовная

Шмелев Иван Сергеевич
6. И. Шмелев. Собрание сочинений в 5 томах
Проза:
классическая проза
4.20
рейтинг книги
Том 6 (доп.). История любовная

Вечный. Книга II

Рокотов Алексей
2. Вечный
Фантастика:
боевая фантастика
попаданцы
рпг
5.00
рейтинг книги
Вечный. Книга II

Счастливый ребенок. Универсальные правила

Курпатов Андрей Владимирович
Универсальные правила
Дом и Семья:
воспитание детей
здоровье детей
5.00
рейтинг книги
Счастливый ребенок. Универсальные правила

Ксения

Зиминоид
Любовные романы:
современные любовные романы
5.00
рейтинг книги
Ксения

Воронцов. Перезагрузка. Книга 2

Тарасов Ник
2. Воронцов. Перезагрузка
Фантастика:
попаданцы
альтернативная история
фэнтези
5.00
рейтинг книги
Воронцов. Перезагрузка. Книга 2

Перезагрузка

Поселягин Владимир Геннадьевич
6. Дитё
Фантастика:
боевая фантастика
7.62
рейтинг книги
Перезагрузка

Острова в океане

Хемингуэй Эрнест Миллер
Книга на все времена
Проза:
классическая проза
6.60
рейтинг книги
Острова в океане

Ученик афериста

Lexie Greenstwater
Проза:
современная проза
5.00
рейтинг книги
Ученик афериста

Первый среди равных. Книга III

Бор Жорж
3. Первый среди Равных
Фантастика:
попаданцы
аниме
фэнтези
6.00
рейтинг книги
Первый среди равных. Книга III

Двенадцатая реинкарнация. Трилогия

Богдашов Сергей Александрович
Фантастика:
боевая фантастика
5.60
рейтинг книги
Двенадцатая реинкарнация. Трилогия