Windows Script Host для Windows 2000/XP
Шрифт:
//Создаем новый документ
WD=WA.Documents.Add(PathTempl, false);
Окно Word делается видимым и максимизируется:
//Делаем окно Winword видимым
WA.Visible=true;
//Максимизируем окно Winword
WA.WindowState=wdWindowStateMaximize;
В переменной
Sel
сохраняется ссылка на объект Selection
: //Получаем ссылку на объект Selection
Sel=WA.Selection;
Как
PersonArr
с использованием объектной модели XML DOM. Вывод информации из этого массива в строки таблицу происходит в функции ListPersonArray
: //Сортировка массива и печать его содержимого
function ListPersonArray {
var i;
//Сортировка массива по фамилии
PersonArr.sort(SortLastName);
//Переходим к закладке TableStart
WD.Bookmarks("TableStart").Select;
//Цикл по всем элементам массива PersonArr
for (i=0;i<=PersonArr.length-1;i++) {
//Печать информации для текущей записи
PrintPerson(PersonArr[i]);
}
}
Как мы видим, сначала в этой функции в семействе
Bookmarks
находится закладка с именем "TableStart" и с помощью метода Select
происходит выделение этой закладки в документе. Затем в цикле for
вызывается функция PrintPerson(PersReс)
для каждого элемента массива PersonArr
; в этой функции содержимое полей объекта PersRec
последовательно печатается в ячейки таблицы: //Печать содержимого полей объекта Person
function PrintPerson(PersRec) {
//Печатаем поля текущей записи
WA.Selection.Text=PersRec.LastName;
//Переходим к следующей ячейке таблицы
WA.Selection.MoveRight(wdCell);
WA.Selection.Text=PersRec.Phone;
WA.Selection.MoveRight(wdCell);
WA.Selection.Text=PersRec.Note;
if (NomRec<PersonArr.length-1)
//Если напечатаны еще не все записи, то нужно
//добавить в таблицу новую строку
WA.Selection.MoveRight(wdCell);
//Увеличиваем номер текущей записи
NomRec++;
}
Итак, печать в таблице происходит следующим образом:
wdCell
проинициализирована в самом начале сценария, wdCell=12
): WA.Selection.MoveRight(wdCell);
Если при этом текущая ячейка находилась в третьем столбце, то после такого перемещения в таблицу автоматически будет добавлена новая строка.
После того как все строки в таблице напечатаны, в файл выводится итоговая информация. Для этого мы выделяем закладку с именем "NomRec" и печатаем туда количество элементов в массиве
PersonArr
: //Выделяем закладку "NomRec"
WD.Bookmarks("NomRec").Select;
//Печатаем итоговую информацию
WA.Selection.Text=PersonArr.length;
Окончательно сформированный файл сохраняется на диске под именем out.doc:
//Сохраняем созданный документ под именем out.doc
WD.SaveAs(PathOut);
Полностью текст сценария ListWordTable.js приведен в листинге 8.2.
Листинг 8.2. Вывод данных из XML-файла в таблицу Microsoft Word
/*******************************************************************/
/* Имя: ListWordTable.js */
/* Язык: JScript */
/* Описание: Печать данных из записной книжки в таблицу */
/* Microsoft Word */
/*******************************************************************/
//Объявляем переменные
var
WshShell, //Экземпляр объекта WshShell
BasePath, //Путь к текущему каталогу
PathBook, //Путь к файлу с данными
PathOut, //Путь к выходному файлу Winword
PathTempl, //Путь к документу-шаблону
WA, //Экземпляр объекта Application
WD, //Экземпляр объекта Document
Sel, //Экземпляр объекта Selection
NomRec=0, //Счетчик количества записей
PersonRec, //Объект для хранения данных об одном человеке
PersonArr; //Массив для хранения объектов PersonRec
//Инициализируем константы Winword'а
var wdCell=12, wdAlignParagraphLeft=0, wdAlignParagraphCenter=1, wdWindowStateMaximize=1;
//Построение путей к файлам
function InitPath {
var BasePath;
BasePath=WshShell.CurrentDirectory+"\\";
Поделиться:
Популярные книги
Отмороженный 8.0
8. Отмороженный
Фантастика:
постапокалипсис
рпг
аниме
5.00
рейтинг книги
Газлайтер. Том 14
14. История Телепата
Фантастика:
попаданцы
аниме
фэнтези
5.00
рейтинг книги
Ермак. Телохранитель
2. Ермак
Фантастика:
альтернативная история
7.00
рейтинг книги
Матабар IV
4. Матабар
Фантастика:
фэнтези
5.00
рейтинг книги
Сборник коротких эротических рассказов
Любовные романы:
эро литература
love action
7.25
рейтинг книги
Идеальный мир для Лекаря 19
19. Лекарь
Фантастика:
юмористическое фэнтези
аниме
5.00
рейтинг книги
Дочь моего друга
2. Айдаровы
Любовные романы:
современные любовные романы
эро литература
5.00
рейтинг книги
Свет Черной Звезды
6. Катриона
Любовные романы:
любовно-фантастические романы
5.50
рейтинг книги
Кодекс Крови. Книга IV
4. РОС: Кодекс Крови
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Идеальный мир для Лекаря 22
22. Лекарь
Фантастика:
юмористическое фэнтези
аниме
фэнтези
5.00
рейтинг книги
Попаданка в академии драконов 4
4. Попаданка в академии драконов
Любовные романы:
любовно-фантастические романы
7.47
рейтинг книги
Сердце Дракона. Том 12
12. Сердце дракона
Фантастика:
фэнтези
героическая фантастика
боевая фантастика
7.29
рейтинг книги
Лолита
Проза:
классическая проза
современная проза
8.05
рейтинг книги
Сводный гад
2. Самбисты
Любовные романы:
современные любовные романы
эро литература
5.00