Выгрузка в формат *.ods (OpenDocument, электр. таблица)

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

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

Okoshkin
новенький
Сообщения: 10
Зарегистрирован: 09.08.2007 15:33:18

Сообщение Okoshkin »

Это при условии, что документ открыт ... вот (на скорую руку) написанный пример:
Попробуйте при открытом и закрытом документе (я тестировал writer-ом)

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

program test;
{$APPTYPE CONSOLE}
uses
  SysUtils, Variants
  ,uno_pascal_helper;
var
  xComponentContext
  ,ServiceManager
  ,DesktopService
  ,XDesktop
  ,CurComp
  : Variant;
begin
  Bootstrap(xComponentContext);
  ServiceManager := xComponentContext.getServiceManager;
  DesktopService := ServiceManager.createInstanceWithContext( 'com.sun.star.frame.Desktop', xComponentContext );
  XDesktop := UNOQueryInterface(DesktopService, 'com.sun.star.frame.XDesktop');
  CurComp := XDesktop.getCurrentComponent;
  if VarIsClear(CurComp)
    then WriteLn('Can not get CurrentComponent')
    else WriteLn('CurrentComponent was received');
end.
ssl
новенький
Сообщения: 59
Зарегистрирован: 17.05.2005 11:27:01

Сообщение ssl »

Okoshkin писал(а):Это при условии, что документ открыт


Фу-у-у-у..
Ясное дело, что документ был открыт :)
Я просто давно сделал экспорт данных в ОО через ОЛЕ бридж, и там работает, а вот при попытке повторить через этот мостик не вышло.

Спасибо, как только почта доберётся - доложу о результатах.
Аватара пользователя
alexs
долгожитель
Сообщения: 4066
Зарегистрирован: 15.05.2005 23:17:07
Откуда: г.Ставрополь
Контактная информация:

Сообщение alexs »

а всем остальным исправления будут даваться? идея то очень нужная :-)
Okoshkin
новенький
Сообщения: 10
Зарегистрирован: 09.08.2007 15:33:18

Сообщение Okoshkin »

Конечно будут ... только нужно определиться с механизмами.
(не выкладывать же каждый раз релиз :) на sf.net )

Есть интерес - будет и результат !
Аватара пользователя
alexs
долгожитель
Сообщения: 4066
Зарегистрирован: 15.05.2005 23:17:07
Откуда: г.Ставрополь
Контактная информация:

Сообщение alexs »

заведи там svn - все остальный будут иметь текущую версию исходников :-)
ssl
новенький
Сообщения: 59
Зарегистрирован: 17.05.2005 11:27:01

Сообщение ssl »

alexs писал(а):заведи там svn - все остальный будут иметь текущую версию исходников :-)

О! SVN - самый правильный выбор!
Okoshkin
новенький
Сообщения: 10
Зарегистрирован: 09.08.2007 15:33:18

Сообщение Okoshkin »

Обязательно заведем ... только текущие дела разгребем и сделаем :(
Okoshkin
новенький
Сообщения: 10
Зарегистрирован: 09.08.2007 15:33:18

Сообщение Okoshkin »

Ну вообщем решили пока сделать так:
http://uno-pas-bridge.sourceforge.net/pre-release.php
ssl
новенький
Сообщения: 59
Зарегистрирован: 17.05.2005 11:27:01

Сообщение ssl »

Я чего-то туплю :(
Под виндами бридж работает. Но! Задача - переползти на линух, причём сейчас, а переписывать систему потом. Под wine всё работает, кроме, ессесно, экспорта в Ексель. Поставленный под тем же wine виндузовый ОО таки работает, но попытки зацепить его ОЛЕ или uno-pas-bridge (прилагаемый ConsoleTest; под wine, ессесно) обламываются. Я понимаю, что это гланды через одно место, но другого способа никак не соображу. Вообще, можно как-нибудь виндовое Delphi-приложение научить работать с ОО, установленном в *nix? Не важно, каким - натуральным ОО или из-под wine запускаемым, - нужен таймаут на переписывание.
PublicJoke
новенький
Сообщения: 41
Зарегистрирован: 04.07.2006 12:21:07

Сообщение PublicJoke »

Предложение: завести отдельную ветку, что-нибудь типа "FreePascal и OpenOffice".

По поводу Вашего проекта: не проще ли пока попробовать CrossKylix? У нас скомпиленные им мост и ConsoleTest работали в Линухе успешно. Сотворите специальный переходник с необходимой Вам функциональностью, а с ним уже хоть через сокеты общаться можно.
ssl
новенький
Сообщения: 59
Зарегистрирован: 17.05.2005 11:27:01

Сообщение ssl »

Боюсь, кросс-киликс не поможет. :(
Дофига платформо-зависимого кода в компонентах для некоей СУБД.
Да и в приложении WinAPI вызовов немало.
Пока почистим..

Ладно, намёк на double brige понял. Попробую разные варианты.
Я так понимаю, мост, собранный CrossKylix'ом "пристаёт" к родному линуксовому ОО?

Кстати, в догонку: беда с назначением границ ячеек. Присваивание leftBorder диапазону влёчёт простановку этой границы у всех ячеек диапазона. Хотя мышкой можно заставить проставить только внешние границы, не затрагивая уже проставленные. Я сначала пытался проставлять границы, манипулируя диапазоном ячеек, но оказалось, что первое присваивание какой-либо границы стирает все остальные.
:( Я чего-то не доглядел в документации?
PublicJoke
новенький
Сообщения: 41
Зарегистрирован: 04.07.2006 12:21:07

Сообщение PublicJoke »

Я так понял, что основная прога из-под Wine-таки пускается (без функций экспорта)? Если да, то какие проблемы?

Я так понимаю, мост, собранный CrossKylix'ом "пристаёт" к родному линуксовому ОО?

Так точно.

По поводу границ: вопрос слишком специфический для нас. Попробуйте для начала сделать это через OLE, чтобы выяснить, в чем причина: в Вашем непонимании или в косяках моста.

Молчание - знак согласия, завожу новую ветку, ссылка: http://freepascal.ru/forum/viewtopic.php?p=15361
ssl
новенький
Сообщения: 59
Зарегистрирован: 17.05.2005 11:27:01

Сообщение ssl »

Ну, для double bridge никаких, конечно. Я про киликс писал.

Я из ОЛЕ и пытался. Я сначала нашёл хороший примерчик работы с ОЛЕ-мостом, на нём докрутил, потом за ваш бридж принялся :)
Вот из-под ОЛЕ оно и никак.
Я просто так понял, что вы при помощи моста отчёты в ОО сливаете, ну а там как же без границ-то :)

Спасибо ещё раз, пошёл воевать с пайпами..
AMD
постоялец
Сообщения: 189
Зарегистрирован: 23.01.2008 21:25:25
Откуда: Кишинев

Сообщение AMD »

У ООО очень тупой API
Аватара пользователя
Attid
долгожитель
Сообщения: 2588
Зарегистрирован: 27.10.2006 17:29:15
Откуда: 44°32′23.63″N 41°2′25.2″E
Контактная информация:

Сообщение Attid »

ev а у нас в правилах по поводу флудерства ничего нет ? :?:
Ответить