Выгрузка в ворд delphi
1. Для чего и для кого
В настоящий момент везде, или почти везде, для работы с текстовыми документами используется Word от Microsoft. Причем, когда читаешь в объявлениях о приеме на работу программиста в фирму не занимающейся разработкой ПО, то с уверенностью можно сказать, что необходим человек, умеющий работать с офисным пакетом (Word, Excel, Access) от вышеупомянутой фирмы. Поэтому данным материалом хотелось бы показать, как можно в некоторых случаях упростить работу с текстовым редактором Word. Для этого не обязательны знания Delphi на профессиональном уровне, достаточно уметь создавать динамически подключаемые библиотеки (DLL) и знать основы VBA для Word. К тому же макроязыки используются не только в пакете от Microsoft, слышал, что аналог VBA есть и в StarOffice.
2. Как подключить DLL в VBA
- name - имя вызываемой функции.
- libname - имя библиотеки.
- arglist - список передаваемых в функцию переменных
3. Как в Delphi создать DLL
Ответ на этот вопрос можно найти во многих справочниках и учебниках по Delphi. Я лишь приведу исходный текст библиотеки.
На форме находятся следующие компоненты: Edit1 и Button1, причем Button1.ModalResult = mrOk. Листинг библиотеки (PrjWTest.dpr): При вызове функции MyTest вызывается наша форма, в Edit помещается переданное число, функция возвращает текст из Edit. Полученную DLL желательно поместить в папку Windows.
4. Проблемы, возникающие при передаче данных.
В данной части хотелось бы обратить внимание на некоторые особенности передачи данных из Delphi в VBA.
Во-первых, если передаете текст, то тип передаваемой функции должен быть Pchar, т.к. VBA не понимает типа String.
Во-вторых, VBA все равно при выводе текста в документ выдаст ерунду. Поэтому ниже привожу листинг функции, преобразующей полученный текст в "нормальный". В-третьих, лучше создавать и освобождать формы отдельными функциями, особенно это видно при работе с базами. 5. Как вставлять текст в Word.
Добрый день, подскажите пожалуйста. Есть некий алгоритм, от подставленных в него чисел он дает некий результат. Его надо записать в ворд и эксель на выбор, с сохранением фаила в определенную директорию с именем фаила ФИО клиента. Как это лучше сделать? Вот кусок кода, как нормально записать и красиво?
как записать во вторую ячейку? как подвинуть все крассиво что бы можно было на листе а4 распечатать данные?
Посоветуйте лучший вариант Спасибо за помощь заранее. В зависимости от расширения файла. В фильтр оба типа добавить. __________________
Пишу программы за еду.
__________________ Ну, данные примеры будут выдавать бред и ошибки.
Если уж мы говорим о красивом выводе, то действовать надо примерно так (посностью код писать лень):
1. Открываем диалог сохранения для выбора пользователем файла. В диалоге в фильтре оба типа файла.
2. Если пользователь выбрал файл, то
3. получаем расширение выбранного файла (для определения куда экспортировать)
4. Копируем из папки программы ЗАРАНЕЕ отдизайненый шаблон (ворд или эксель по типу расширения)
5. Вызываем процедуру вывода данных в ворд или в эксель (по типу расширения).
Пара слов о самом экспорте. Я бы делал через OLE, примеров в инете достаточно. В эксель можно просто по ячейкам добавлять. В ворд если данных мало, то можно заменой, если данных много, то расставляем закладки и соотв. впечатываем данные в соотв. места переходя по этим закладкам. Примеров, как я сказал, в инете предостаточно.
Допустим с методом записи информации в фаил разберусь, подскажите как задать местоположение фаила куда сохранить? описанный выше вариант не подходит.
См. выше, уже расписали: "1. Открываем диалог сохранения для выбора пользователем файла". Компонент SaveDialog на вкладке Dialogs.Как правильно? я плохо разбираюсь в делфи если честно, не понимаю как правильно сохратить ворд, а так же эксель.
Задолбался, все равно не понимаю.Подскажите пожалуйста,в фаил внести изменения которые расчитывает программа и как это сохранять в определенные директории?
По сути задача простая записать кучу переменных на выбор в фаил ворд или эксель. перечитал кучу мануалов информации нет.
тебе где-то в начале сказали, что надо пользоваться OLE для вывода в документы офиса. Файлы офиса имеют сложную структуру, так просто их не запишешь.
Для Excel есть обходной маневр. Он прекрасно умеет читать файлы формата csv. Форматирования, конечно, не будет, но если прввильно составить csv, то можно получить что-то более менее вменяемое.
csv - значения, разделенные запятыми.
Т.е. пишется обычный текстовый файл, просто прикидываешь где должны распологаться значения и, соовтетваенно, расставляешь запятые.
К сожалению, с вордом такой фокус не пройдет. Там придется изгаляться. Можно попользовать TRichEdit, в который вывести все данные, а потом сохранить файл как rtf. Его ворд умеет правильно читать.
Ну а родные форматы - либо работаем через OLE, либо ищем библиотеки для работы с ними, но они, библиотеки, обычно платные.
DOCX- это файл архив, который можно распаковать сторонней программой. Формат является модернизированной версией широко известного расширения DOC. Значительным отличием стал малый вес при сохранении всех исходных параметров изображения. Если .doc представляет собой бинарный текстовый файл, то .docx содержит в себе XML-файлы и дополнительные папки, а сжатие файла уменьшает его размер.
Это универсальный формат, который с легкостью может прочитать практически любой почтовый клиент, облачное хранилище и текстовые редакторы у вас в мобильном устройстве.
Для работы с docx можно воспользоваться следующими программами: WindowsWord, Libre Office, Open Office, Word Pad, AiReader, Ice Book Reader, Calibre, Universal Viewer, Text Maker, Ability Write. Это лишь небольшой список из огромного количества программ, открывающих текстовые файлы формата DOCX.
Подробнее об XML я рассказал в статье «Записать в Excel XML из Delphi / Lazarus». Но как же создать документ DOCX из Delphi или Lazarus? А вот с помощью FastReport!
Сохраняем в формат . docx из Delphi без единой строчки кода!
Прежде всего, добавляем на форму компоненты TfrxReport, TfrxDOCXExport (экспорт в Microsoft Word 2007 XML). Затем создаём шаблон отчёта в дизайнере, формируем отчёт, нажимаем в предпросмотре “Сохранить” и вызываем экспорт из предпросмотра (ниже покажу, как реализовать запись с помощью кода Delphi). Появляется окошко настроек экспорта в DOCX.
Открыть после экспорта – результирующий файл будет открыт сразу же после экспорта программой, которая стоит по умолчанию для открытия таких документов.
Читайте также: