Доброго времени суток. Нужно создать акт в word на основе данных, имеющихся на winforms. Подскажите, как лучше это сделать или с чего вообще начать? На листе будет отформатированный текст и таблица, число строк в которой каждый раз будет разным, но не более 10. Примерный внешний вид акта можно увидеть на фото ниже. Места, где замазано, как раз надо будет заменить на свои. Ну и, как писал выше, добавить строки в таблицу. В изначальном шаблоне есть только шапка таблицы, без строк.
Ответ
Используй стандартное расширение Microsoft.Office.Interop.Word и подготовь шаблон с данного документа с закладками в требуемых местах. Краткий код работы с документом:
Word._Document document;
Word._Application application=new Word.Application();
object missingObj = Missing.Value;
object templatePathObj = documentpath;
//открытие файла
try
{
document = application.Documents.Add(ref templatePathObj, ref missingObj, ref missingObj, ref missingObj);
}
catch
{
document.Close(ref falseobj, ref missingObj, ref missingObj);
application.Quit(ref missingObj, ref missingObj, ref missingObj);
document = null;
application = null;
}
//заполнение закладок
object bookmarkObj = "закладка";
Word.Range bookmarkRange = document.Bookmarks.get_Item(ref bookmarkObj).Range;
bookmarkRange.Text = "";
//работа с таблицей
Word.Table _table = _document.Tables[tableNumber]; //Выбрать уже существующую таблицу внутри документа можно по ее порядковому номеру (начиная с 1 и начала документа)
_table.Rows.Add(ref _missingObj);
Word.Range _currentRange = _table.Cell(rowIndex, columnIndex).Range;
_currentRange.Text="";
//Вывод на печать
document.PrintOut(ref missingObj, ref missingObj, ref missingObj, ref missingObj, ref missingObj, ref missingObj, ref missingObj, ref missingObj, ref missingObj, ref missingObj, ref missingObj, ref missingObj, ref missingObj, ref missingObj, ref missingObj, ref missingObj, ref missingObj, ref missingObj);
document.Close(Word.WdSaveOptions.wdDoNotSaveChanges);
application.Quit();
Подробно об этом расширении есть тут и тут.
Комментариев нет:
Отправить комментарий