Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
||
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[18.226.34.80] |
|
Страницы: (2) [1] 2 все ( Перейти к последнему сообщению ) |
Сообщ.
#1
,
|
|
|
Очень часто программы формируют документы word, excel и т.п. Я знаю только 1 способ эффективной работы с ними:
1 Создать заранее шаблон с неизменным текстом 2 В шаблон вставить подменные переменные - например %ФИО_АБОНЕНТА% 3 Программа создает документ на основе шаблона и подменяет подменные переменные на нужные. Есть-ли какие-то ещё способы формирования подобных документов? Как например формируются документы в ворд\экселе точные копии экрана программы? Т.е. программа показала в себе форму, эта-же форма попала в вордовский файл. |
Сообщ.
#2
,
|
|
|
Printscreen?
Начали писАть про документ а закончили копией с экрана. Вообще точную копию можно сделать либо как картинку либо что-то типа документа pdf. Я например в своей программе создаю документ (правда HTML), даю посмотреть/распечатать через стандартный webbrowser, а далее при желании, можно этот же документ экспортировать в файл. |
Сообщ.
#3
,
|
|
|
Он наверно имел в виду, что программа показывает превьюшку будущего документа. А потом формирует документ, который выглдит, как эта превьюшка.
PDF не всегда удобен. Бывает нужно сформировать документ, а потом его как-то доработать руками. С PDF это сделать затруднительно. Есть библиотеки, позволяющие сформировать нужный файл. Но практически это та же работа с шаблоном, только спрятанная внутрь программы. Программа не читает шаблон, меняет текст и пишет файл, а сразу пишет с нужным текстом. Шаблоны особенно удобно использовать, если формируется файл типа RTF (Rich Text Format), его можно обработать любой программой обработки текста, вообще без использования каких-либо библиотек. |
Сообщ.
#4
,
|
|
|
Цитата amk @ Программа не читает шаблон, меняет текст и пишет файл, а сразу пишет с нужным текстом. Так там куча форматирования - цвет, шрифт и т.д. Цитата DIS @ ачали писАть про документ а закончили копией с экрана. Да, имел в виду превью. |
Сообщ.
#5
,
|
|
|
Ответ от kosten:
^D^ima, ты вроде с 1С работаешь? Вот там печатную форму можно сохранить как документ word или excel. Цитата ^D^ima @ 1 Создать заранее шаблон с неизменным текстом 2 В шаблон вставить подменные переменные - например %ФИО_АБОНЕНТА% 3 Программа создает документ на основе шаблона и подменяет подменные переменные на нужные. Ты описал самый простой случай. Представь, что в шаблоне у тебя есть таблица. Количество строк заранее не известно. Как будешь действовать? |
Сообщ.
#6
,
|
|
|
Цитата OpenGL @ Ответ от kosten: ^D^ima, ты вроде с 1С работаешь? Вот там печатную форму можно сохранить как документ word или excel. Вопрос не про 1С, а о разработке софта языком высокого уровня. Цитата OpenGL @ Ты описал самый простой случай. Представь, что в шаблоне у тебя есть таблица. Количество строк заранее не известно. Как будешь действовать? Так это и есть мой вопрос. Возможно есть какие-то print-report'ы, где все делается само, и люди не изобретают велосипед, а пользуются готовыми решениями? |
Сообщ.
#7
,
|
|
|
Цитата ^D^ima @ Так это и есть мой вопрос. Возможно есть какие-то print-report'ы, где все делается само, и люди не изобретают велосипед, а пользуются готовыми решениями? Не знаю У нас в компании пользуются своим велосипедом, формирующим документ по шаблону через COM. Он позволяет вставлять не только строки, но и содержимое файлов, более того, это делается рекурсивно - если во вставляемом документе тоже есть теги, которые надо заменить - они заменятся. Конкретно таблицы c динамическим количеством строк генерируются в html. Совет от kosten-а тоже сводится к COM |
Сообщ.
#8
,
|
|
|
Цитата OpenGL @ формирующим документ по шаблону через COM. Цитата OpenGL @ Совет от kosten-а тоже сводится к COM Так я так и написал в первом посте, по другому с вордом я не знаю ка ещё можно взаимодействовать. В общем ответ - через шаблон с подменой текста, как понимаю |
Сообщ.
#9
,
|
|
|
Цитата OpenGL @ Количество строк заранее не известно. Как будешь действовать? ...ActiveDocument->Tables->Item(N) - выбираем N-ю таблицу а у таблицы есть методы добавления новых строк. Добавлено Можно через закладку по диапазону , накладываем на все колонки таблицы. |
Сообщ.
#10
,
|
|
|
Цитата ^D^ima @ В общем ответ - через шаблон с подменой текста, как понимаю Не только подмена, но и с использованием других возможностей, которые тебе дает COM-объект. Цитата ^D^ima @ Вопрос не про 1С, а о разработке софта языком высокого уровня. Ты решил обидеть 1С? |
Сообщ.
#11
,
|
|
|
Ешхё можно использовать сторонние библиотеки, например Aspose (Aspose Word, Aspose Cells, Aspose PDF etc)
|
Сообщ.
#12
,
|
|
|
Гуру VBA могут пояснить какой подход в заполнении вордовского документа лучше - DocVariables или поиск и замена текстовых меток?
|
Сообщ.
#13
,
|
|
|
Цитата kosten @ Ты решил обидеть 1С? Я имел в виду универсальным языком высого уровня(delphi, C) |
Сообщ.
#14
,
|
|
|
Вариант создать XML/HTML установленного формата и открыть его как документ офиса?
используя "разметку" создать RTF документ (формат ЕМНИП открытый) |
Сообщ.
#15
,
|
|
|
Цитата Павел Калугин @ XML XML не имеет форматирования внутри |