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;
}
Поделиться:
Популярные книги
Решала
10. Девяностые
Фантастика:
попаданцы
альтернативная история
5.00
рейтинг книги
Моя простая курортная жизнь
1. Моя простая курортная жизнь
Проза:
современная проза
5.00
рейтинг книги
Позывной "Князь" 2
2. Князь Эгерман
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Чужак из ниоткуда 2
2. Чужак из ниоткуда
Фантастика:
попаданцы
альтернативная история
5.00
рейтинг книги
Кодекс Охотника. Книга XVIII
18. Кодекс Охотника
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Метатель
1. Метатель
Фантастика:
боевая фантастика
попаданцы
рпг
фэнтези
фантастика: прочее
постапокалипсис
5.00
рейтинг книги
Я не царь. Книга XXIV
24. Дорогой барон!
Фантастика:
юмористическое фэнтези
аниме
попаданцы
5.00
рейтинг книги
Последний Герой. Том 1
1. Последний герой
Фантастика:
попаданцы
альтернативная история
фантастика: прочее
5.00
рейтинг книги
Светлая тьма. Советник
6. Светлая Тьма
Фантастика:
юмористическое фэнтези
городское фэнтези
аниме
сказочная фантастика
фэнтези
5.00
рейтинг книги
Сталин
1190. Жизнь замечательных людей
Документальная литература:
биографии и мемуары
4.50
рейтинг книги
Вперед в прошлое 6
6. Вперед в прошлое
Фантастика:
попаданцы
альтернативная история
5.00
рейтинг книги
Месть Паладина
5. Псевдоним `Испанец`
Фантастика:
фэнтези
попаданцы
аниме
7.00
рейтинг книги
Убивать чтобы жить 6
6. УЧЖ
Фантастика:
боевая фантастика
космическая фантастика
рпг
5.00
рейтинг книги
Князь Андер Арес 3
3. Андер Арес
Фантастика:
рпг
аниме
фэнтези
5.00