3

我正在使用 Delphi 7,我想使用自动化而不是使用文件将列表的内容从我的程序导出到 OpenOffice Calc。

任务很简单:创建新文档,遍历行/列并更改单元格数据。

我找到了一些代码,但它并不完整,我希望有人准备好一些示例代码来完成这个非常简单的任务。它可以节省我几个小时的尝试时间。

提前致谢!


编辑:我想自动化 OpenOffice Calc 来实现我上面写的。谢谢!

4

2 回答 2

2

最简单的解决方案是编写 CSV 文件输出,然后在 OpenOffice 中打开它。

还有一些库可以编写 OpenOffice Calc 和 Excel 都可以读取的 .XLS 文件。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)
   ...
于 2011-04-20T17:23:15.193 回答
2

Open Office 支持自动化

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

可以在以下位置找到 Delphi 的 Open Office 信息:http:
//development.openoffice.org/#OLE

该站点 ooomacros.org 似乎已关闭,幸运的是,wayback 机器仍然有一个副本:
http ://replay.web.archive.org/20090608051118/http://www.ooomacros.org/dev.php

祝你好运。

于 2011-04-20T20:37:31.613 回答