Экспорт списка в OpenOffice Calc из Delphi - PullRequest
3 голосов
/ 20 апреля 2011

Я использую Delphi 7 и хочу экспортировать содержимое списка из моей программы в OpenOffice Calc с использованием автоматизации, а не файлов.

Задача проста: создать новый документ, перебрать строки / столбцы и изменить данные ячейки.

Я нашел некоторый код, но он не завершен, и я надеялся, что у кого-то есть пример кода, готового для выполнения этой очень простой задачи. Это может сэкономить мне несколько часов попыток.

Заранее спасибо!


Edit: я хотел бы автоматизировать OpenOffice Calc, чтобы достичь того, что я написал выше. Спасибо!

Ответы [ 2 ]

2 голосов
/ 21 апреля 2011

Open Office поддерживает автоматизацию

см .: http://udk.openoffice.org/common/man/tutorial/office_automation.html

Информация об Open Office для Delphi находится по адресу:
http://development.openoffice.org/#OLE

На сайте ooomacros.Орг, кажется, не работает, к счастью, у машины с обратным ходом все еще есть копия:
http://replay.web.archive.org/20090608051118/http://www.ooomacros.org/dev.php

Удачи.

2 голосов
/ 20 апреля 2011

Самое простое решение - записать вывод файла CSV и открыть его в OpenOffice.

Существуют также библиотеки для записи файлов .XLS, которые могут читать и OpenOffice Calc, и Excel.CSV так прост, интересно, вам нужен пример.Создайте TStringList и добавьте в него строки в формате через запятую.Сохранить в файл.

Так называемый "программный" метод включает OLE-автоматизацию.

uses
  OleAuto;

var
 mgr,calc,sheets,sheet1,dt,args:Variant;
begin
   args = VarArrayCreate(...);    
   mgr := CreateOleObject('com.sun.star.ServiceManager');
   dt := mgr.createInstance('com.sun.star.frame.Desktop')
   calc = dt.loadComponentFromURL('private:factory/scalc', '_blank', 0, args)
   sheets = calc.getSheets()
   sheet1 = sheets.getByIndex(0)
   ...
...