LibreOffice-DELPHI-Lazarus-OpenOffice

Вопросы программирования и использования среды Lazarus.

Модератор: Модераторы

Аватара пользователя
pi1
новенький
Сообщения: 59
Зарегистрирован: 19.04.2012 18:11:24
Откуда: г.Зеленокумск
Контактная информация:

LibreOffice-DELPHI-Lazarus-OpenOffice

Сообщение pi1 »

Тут возникла необходимость вывода в документ LibreOffice (под Windows). Перерыл много. Думаю мои ссылки помогут время съэкономить.
Сначала статьи, местами друг у друга списано, но есть и отличие.
http://www.interface.ru/home.asp?artId=20464 - Первые шаги в автоматизации OpenOffice.Calc и OpenOffice.Writer под Delphi Источник: delphisources
Васильков Ю. В.
http://www.cs.vsu.ru/~fvv/DOCs/Distribu ... elphi.htm- OpenOffice + Delphi Голубь Павел aka pasha_golub©
И самая полезная ссылочка
http://www.sql.ru/forum/405083/delphi-o ... nim-probel
Там же есть ссылка на первоисточник - http://rsdn.org/forum/src/1187888

Добавлено спустя 21 минуту 19 секунд:
Ну и ессно ссылка - viewtopic.php?f=24&t=7297&start=165 - типа "местная" , но все таки на sql.ru (см.выше) ntvf hfcrhsnf ibht/

Добавлено спустя 1 минуту 19 секунд:
ntvf hfcrhsnf ibht/= раскрыта шире :wink:
Аватара пользователя
*Rik*
постоялец
Сообщения: 453
Зарегистрирован: 19.04.2011 12:18:51
Откуда: Урал
Контактная информация:

Сообщение *Rik* »

Для электронных таблиц есть FpSpreadSheet, имхо лучшее средство. Работает с ods, xls, xlsx, есть визуальная компонента VisualSpreadSheet которая электронные таблицы отображает в вашей программе. Работает на любой платформе, для своей работы не требует наличия ни Excel ни SCalc.
Аватара пользователя
wofs
постоялец
Сообщения: 379
Зарегистрирован: 05.10.2009 10:16:55
Откуда: Астрахань
Контактная информация:

Сообщение wofs »

*Rik* писал(а):FpSpreadSheet

У него проблема с большим потреблением оперативной памяти (точнее это проблема не его, а XML парсера, что идет с FPC).
Это сильно сказывается на производительности при работе с файлами XLSX больше 5Мб. Для себя нашел решение для XLSX использую zexmlss - потребление памяти в разы меньше, но есть нюансы при компиляции на последнем Lazarus - пришось выкинуть все флаги условной компиляции под DELPHI. Правда в нем нет красивого грида для Lazarus.
Аватара пользователя
serbod
постоялец
Сообщения: 449
Зарегистрирован: 16.09.2016 10:03:02
Откуда: Минск
Контактная информация:

Сообщение serbod »

Аналогично пользуюсь zexmlss, создаю таблицы на 3-5 миллионов строк, в нескольких вкладках. Но у меня старая версия 0.0.8, не всегда хватает памяти на их упаковку в zip, пришлось самому слегка пропатчить.
slyubez
постоялец
Сообщения: 185
Зарегистрирован: 31.03.2015 07:44:07

Сообщение slyubez »

Лет 8 назад я тоже решал такую задачу, но под Delphi+OpenOffice. Делал ручками через OLE; когда были непонятки с командами, необходимыми для выполнения тех или иных действий, записывал макрос и переводил его в Delphi.
Аватара пользователя
*Rik*
постоялец
Сообщения: 453
Зарегистрирован: 19.04.2011 12:18:51
Откуда: Урал
Контактная информация:

Сообщение *Rik* »

wofs писал(а):
*Rik* писал(а):FpSpreadSheet

У него проблема с большим потреблением оперативной памяти (точнее это проблема не его, а XML парсера, что идет с FPC).
Это сильно сказывается на производительности при работе с файлами XLSX больше 5Мб. Для себя нашел решение для XLSX использую zexmlss - потребление памяти в разы меньше, но есть нюансы при компиляции на последнем Lazarus - пришось выкинуть все флаги условной компиляции под DELPHI. Правда в нем нет красивого грида для Lazarus.

Не знал... Ну у меня пока и нет больших xlsx, а вот XML есть под 100мб, я даже как то не задавался вопросом сколько оно при этом жрет и как долго работает, потому что через OLE оно в былые времена, в разы дольше работало... Я пока SpreadSheet удовлетворен, если бы zexmlss попался мне на глаза раньше, я бы наверно рассмотрел этот вариант, а сейчас раз уж SpreadSheet подцеплен, уже поздно переделывать..
Linux:
Изображение
Аватара пользователя
vitaly_l
долгожитель
Сообщения: 3333
Зарегистрирован: 31.01.2012 16:41:41
Контактная информация:

Сообщение vitaly_l »

wofs писал(а):сильно сказывается на производительности при работе с файлами XLSX больше 5Мб

*Rik* писал(а):у меня пока и нет больших xlsx

нет там никаких тормозов на 5 Мб, т.к. вчера только грузил xlsx на 9.5 Мб, с очень сложной архитектурой и в SpreadSheet - всё ок. У меня даже опенофис этот файл не открывал, а SpreadSheet - всё сделал мгновенно.

Возможно скорость зависит от архитектуры XLSX.

.
Аватара пользователя
wofs
постоялец
Сообщения: 379
Зарегистрирован: 05.10.2009 10:16:55
Откуда: Астрахань
Контактная информация:

Сообщение wofs »

vitaly_l писал(а):
wofs писал(а):сильно сказывается на производительности при работе с файлами XLSX больше 5Мб

*Rik* писал(а):у меня пока и нет больших xlsx

нет там никаких тормозов на 5 Мб, т.к. вчера только грузил xlsx на 9.5 Мб, с очень сложной архитектурой и в SpreadSheet - всё ок. У меня даже опенофис этот файл не открывал, а SpreadSheet - всё сделал мгновенно.

Возможно скорость зависит от архитектуры XLSX.

.

Последних 3 сообщения.
http://forum.lazarus.freepascal.org/ind ... 726.0.html
Аватара пользователя
vitaly_l
долгожитель
Сообщения: 3333
Зарегистрирован: 31.01.2012 16:41:41
Контактная информация:

Сообщение vitaly_l »

wofs писал(а):Последних 3 сообщения.
http://forum.lazarus.freepascal.org/ind ... 726.0.html

Код: Выделить всё

but is read successfully with 64-bit.

у меня 64 бит + Win10 + last Lazarus <= поэтому я и не вижу проблем.

.
Аватара пользователя
pi1
новенький
Сообщения: 59
Зарегистрирован: 19.04.2012 18:11:24
Откуда: г.Зеленокумск
Контактная информация:

Сообщение pi1 »

А вот тут очень толково про "Импорт информации из Delphi в Word" (Владимир Богдановский)- http://www.interface.ru/home.asp?artId=2325
Кстати, для вывода кириллицы в Writter (Word) мне пришлось использовать utf8decode.

Добавлено спустя 3 минуты 54 секунды:
Вот не пойму почему, но у меня через TfrHtmExport из Lazreport выводится ну очень безобразная страничка. Вот и пришлось изучать другие технологии :)

Добавлено спустя 13 часов 21 минуту 54 секунды:
А тут значения всех энумераторов для Word - msdn.microsoft.com/en-us/library/office/aa211923(v=office.11).aspx
Последний раз редактировалось pi1 19.02.2018 11:47:48, всего редактировалось 1 раз.
Аватара пользователя
wofs
постоялец
Сообщения: 379
Зарегистрирован: 05.10.2009 10:16:55
Откуда: Астрахань
Контактная информация:

Сообщение wofs »

pi1 писал(а):Вот не пойму почему, но у меня через TfrHtmExport из Lazreport выводится ну очень безобразная страничка. Вот и пришлось изучать другие технологии :)

Имхо, если работать через OLE, то уж лучше с Libre Writer (тем более, что есть шикарная библиотека) - все таки Word не у всех есть, особенно в организациях.
А если взять формат .odt, то можно напрямую писать, плюс где-то видел уже готовый класс под это дело.
LearnMagic
новенький
Сообщения: 66
Зарегистрирован: 10.11.2016 22:13:38

Сообщение LearnMagic »

pi1 писал(а):... Вот и пришлось изучать другие технологии :)

Для формирования отчётов в своих проектах использую RTF, как обычный текстовый файл. Если не сильно заморачиваться с оформлением, то можно генерировать непосредственно в программе. Для вариантов без возможности исправления шаблонов отчётов пользователями достаточно простого копирования текста из файла, сформированного любым редактором (MS Word, LibreOffice, OpenOffice и т.п.)
Аватара пользователя
Verx0Laz
постоялец
Сообщения: 125
Зарегистрирован: 11.09.2007 11:24:07

Сообщение Verx0Laz »

ИМХО, самый простой и кросс-платформенный способ забивания данных из программы в docx или xlsx состоит в том, что эти форматы - по сути зазипованные наборы xml - файлов. Создаем готовый отчет руками, потом программно раззиповываем файл, правим как текст или xml и зазиповываем назад. Года 4 назад генерил таким образом несколько отчетов, подробностей не помню, исходник не нашел, но вроде особых проблем не возникало.
Аватара пользователя
pi1
новенький
Сообщения: 59
Зарегистрирован: 19.04.2012 18:11:24
Откуда: г.Зеленокумск
Контактная информация:

Сообщение pi1 »

Delphi: работа с MS WORD- http://mirznanii.com/a/110398/delphi-rabota-s-ms-word

Добавлено спустя 8 минут 36 секунд:
Когда то, в 2002 я поступил очень просто (корпоративные правила безопасников определили rtf как единственно допустимый формат, приходили скан - документы в этом формате из Москвы, 80 МБ, это при 16 МБ ОЗУ). Создал пустой rtf и загонял в него текст из DOS программы. Несколько лет слались отчеты. Однажды я посмотрел, кто там в авторах прописан и был поражен (здесь такое слово писать неприлично). Поэтому все "левые" варианты не подходят. Устраивает полное управление документом (с Writter уже все понятно) или качественный экспорт из Lazreporta.
Аватара пользователя
alexs
долгожитель
Сообщения: 4066
Зарегистрирован: 15.05.2005 23:17:07
Откуда: г.Ставрополь
Контактная информация:

Сообщение alexs »

pi1 писал(а):качественный экспорт из Lazreporta.

Сейчас в ods/xls/xlsx должно быть нормально.
Ответить