LibreOffice-DELPHI-Lazarus-OpenOffice

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

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

LibreOffice-DELPHI-Lazarus-OpenOffice

Сообщение pi1 » 14.02.2018 21:48:58

Тут возникла необходимость вывода в документ 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:
Аватара пользователя
pi1
новенький
 
Сообщения: 59
Зарегистрирован: 19.04.2012 18:11:24
Откуда: г.Зеленокумск

Re: LibreOffice-DELPHI-Lazarus-OpenOffice

Сообщение *Rik* » 15.02.2018 06:42:40

Для электронных таблиц есть FpSpreadSheet, имхо лучшее средство. Работает с ods, xls, xlsx, есть визуальная компонента VisualSpreadSheet которая электронные таблицы отображает в вашей программе. Работает на любой платформе, для своей работы не требует наличия ни Excel ни SCalc.
Аватара пользователя
*Rik*
постоялец
 
Сообщения: 426
Зарегистрирован: 19.04.2011 12:18:51
Откуда: Урал

Re: LibreOffice-DELPHI-Lazarus-OpenOffice

Сообщение wofs » 15.02.2018 15:18:11

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

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

Re: LibreOffice-DELPHI-Lazarus-OpenOffice

Сообщение serbod » 15.02.2018 18:14:48

Аналогично пользуюсь zexmlss, создаю таблицы на 3-5 миллионов строк, в нескольких вкладках. Но у меня старая версия 0.0.8, не всегда хватает памяти на их упаковку в zip, пришлось самому слегка пропатчить.
Аватара пользователя
serbod
постоялец
 
Сообщения: 449
Зарегистрирован: 16.09.2016 11:03:02
Откуда: Минск

Re: LibreOffice-DELPHI-Lazarus-OpenOffice

Сообщение slyubez » 16.02.2018 10:56:05

Лет 8 назад я тоже решал такую задачу, но под Delphi+OpenOffice. Делал ручками через OLE; когда были непонятки с командами, необходимыми для выполнения тех или иных действий, записывал макрос и переводил его в Delphi.
slyubez
постоялец
 
Сообщения: 173
Зарегистрирован: 31.03.2015 08:44:07

Re: LibreOffice-DELPHI-Lazarus-OpenOffice

Сообщение *Rik* » 16.02.2018 12:46:32

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

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

Не знал... Ну у меня пока и нет больших xlsx, а вот XML есть под 100мб, я даже как то не задавался вопросом сколько оно при этом жрет и как долго работает, потому что через OLE оно в былые времена, в разы дольше работало... Я пока SpreadSheet удовлетворен, если бы zexmlss попался мне на глаза раньше, я бы наверно рассмотрел этот вариант, а сейчас раз уж SpreadSheet подцеплен, уже поздно переделывать..
Linux:
Изображение
Аватара пользователя
*Rik*
постоялец
 
Сообщения: 426
Зарегистрирован: 19.04.2011 12:18:51
Откуда: Урал

Re: LibreOffice-DELPHI-Lazarus-OpenOffice

Сообщение vitaly_l » 16.02.2018 13:01:10

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

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

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

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

.
Аватара пользователя
vitaly_l
долгожитель
 
Сообщения: 3333
Зарегистрирован: 31.01.2012 16:41:41

Re: LibreOffice-DELPHI-Lazarus-OpenOffice

Сообщение wofs » 17.02.2018 08:07:21

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

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

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

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

.

Последних 3 сообщения.
http://forum.lazarus.freepascal.org/ind ... 726.0.html
Аватара пользователя
wofs
постоялец
 
Сообщения: 379
Зарегистрирован: 05.10.2009 10:16:55
Откуда: Астрахань

Re: LibreOffice-DELPHI-Lazarus-OpenOffice

Сообщение vitaly_l » 17.02.2018 15:24:02

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

Код: Выделить всё
but is read successfully with 64-bit.

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

.
Аватара пользователя
vitaly_l
долгожитель
 
Сообщения: 3333
Зарегистрирован: 31.01.2012 16:41:41

Re: LibreOffice-DELPHI-Lazarus-OpenOffice

Сообщение pi1 » 17.02.2018 22:21:45

А вот тут очень толково про "Импорт информации из 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 12:47:48, всего редактировалось 1 раз.
Аватара пользователя
pi1
новенький
 
Сообщения: 59
Зарегистрирован: 19.04.2012 18:11:24
Откуда: г.Зеленокумск

Re: LibreOffice-DELPHI-Lazarus-OpenOffice

Сообщение wofs » 18.02.2018 12:58:53

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

Имхо, если работать через OLE, то уж лучше с Libre Writer (тем более, что есть шикарная библиотека) - все таки Word не у всех есть, особенно в организациях.
А если взять формат .odt, то можно напрямую писать, плюс где-то видел уже готовый класс под это дело.
Аватара пользователя
wofs
постоялец
 
Сообщения: 379
Зарегистрирован: 05.10.2009 10:16:55
Откуда: Астрахань

Re: LibreOffice-DELPHI-Lazarus-OpenOffice

Сообщение LearnMagic » 18.02.2018 17:45:15

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

Для формирования отчётов в своих проектах использую RTF, как обычный текстовый файл. Если не сильно заморачиваться с оформлением, то можно генерировать непосредственно в программе. Для вариантов без возможности исправления шаблонов отчётов пользователями достаточно простого копирования текста из файла, сформированного любым редактором (MS Word, LibreOffice, OpenOffice и т.п.)
LearnMagic
новенький
 
Сообщения: 66
Зарегистрирован: 10.11.2016 23:13:38

Re: LibreOffice-DELPHI-Lazarus-OpenOffice

Сообщение Verx0Laz » 18.02.2018 18:29:23

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

Re: LibreOffice-DELPHI-Lazarus-OpenOffice

Сообщение pi1 » 18.02.2018 20:46:01

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

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

Re: LibreOffice-DELPHI-Lazarus-OpenOffice

Сообщение alexs » 19.02.2018 09:30:21

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

Сейчас в ods/xls/xlsx должно быть нормально.
Аватара пользователя
alexs
долгожитель
 
Сообщения: 4053
Зарегистрирован: 15.05.2005 23:17:07
Откуда: г.Ставрополь

След.

Вернуться в Lazarus

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 33

Рейтинг@Mail.ru