Недавно писал пост, как выкинуть текст в ворд из xml файла в шаблон документа.
Но есть проблема с таблицами, нашел в сети пример и настроил его для своих нужд.
function PlayWithWord()
{
//JScript
//Создаем объект для работы с Вордом
var wrd = new ActiveXObject("Word.Application");
wrd.Documents.Add(); //Создаем новый документ
adoc = wrd.ActiveDocument; //Получаем указатель на активный документ
myRange = adoc.Range(Start = 0, End = 0); //Указатель на область в документе
//Активизируем Ворд
wrd.Visible = true;
wrd.Activate();
//это типа демо таблица
//первый вложенный массив это названия столбцов
//второй их ширина
var webTable = [
["Название","Ед.изм","Цена","Количество","Стоимость"],
["260","40","60","40","60"],
["Трубка металлическая","шт.","2300","2","4600"],
["Трубка металлическая","шт.","2300","2","4600"],
["Трубка металлическая","шт.","2300","2","4600"],
["Трубка металлическая","шт.","2300","2","4600"],
["","","","","Всего:25000 руб. 00 коп"]
];
AddTable(wrd, myRange, webTable);
}
//вставляет таблицу в заданный диапазон
function AddTable(wrd, myRange, webTable)
{
//Создаем таблицу с одной строкой и тремя столбцами
//Задаем ширину столбцов
tb0 = adoc.tables.Add(Range = myRange , NumRows = 1, NumColumns = webTable[0].length /*3*/);
for(var i=0; i<webTable[0].length;i++)
tb0.Columns(1+i).Width = parseInt(webTable[1][i]);
//Заполняем заголовок таблицы
for(var i=0; i<webTable[0].length;i++)
tb0.Cell(1, i+1).Range.InsertAfter(webTable[0][i]);
intIndex = 2; //Счетчик строк
for(var i=2; i<webTable.length; i++)
{
Show(webTable[i]);
}
//Ну и сама функция для вывода строк
//создаем строку, перебираем ее столбцы и вставляем значения из массива, должна совпадать длина массива и количество столбцов
function Show(rowArr)
{
tb0.Rows.Add();
for(var i=0; i<rowArr.length; i++)
{
tb0.Cell(intIndex, i+1).Range.InsertAfter(rowArr[i]);
}
intIndex++;
}
}
Теперь надо как то объединить вывод в шаблон по закладка с выводом таблиц, плюс проблема с форматированием таблиц.
Наверно надо не создавать таблицу а менять количество столбцов, для отформатированной таблицы, в общем надо изучать матчасть дальше