我使用的是Delphi 7,我想使用自動化將我的程序中的列表內容導出到OpenOffice Calc,而不是使用文件。從Delphi導出一個列表到OpenOffice Calc
該任務很簡單:創建新文檔,遍歷行/列並更改單元格數據。
我發現了一些代碼,但它並不完整,我希望有人有一些示例代碼可以完成這個非常簡單的任務。它可以爲我節省幾個小時的嘗試。
在此先感謝!
編輯:我想自動化OpenOffice Calc來實現我上面寫的。謝謝!
我使用的是Delphi 7,我想使用自動化將我的程序中的列表內容導出到OpenOffice Calc,而不是使用文件。從Delphi導出一個列表到OpenOffice Calc
該任務很簡單:創建新文檔,遍歷行/列並更改單元格數據。
我發現了一些代碼,但它並不完整,我希望有人有一些示例代碼可以完成這個非常簡單的任務。它可以爲我節省幾個小時的嘗試。
在此先感謝!
編輯:我想自動化OpenOffice Calc來實現我上面寫的。謝謝!
最簡單的解決方案是編寫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)
...
謝謝,但我只想導出而不保存。我的程序和Excel一樣,爲了保持一致,我想和OO做同樣的事情。用戶是否保存表格 - 這是他/她的選擇。 – Steve 2011-04-20 17:30:53
這是更多的工作。爲了什麼?創建一個臨時文件夾,啓動該程序,稍後刪除該臨時文件。我不知道OO支持OLE自動化,我知道如何使用MS Excel執行此操作,但不使用OOCalc。 – 2011-04-20 18:16:08
開放式辦公支持自動化
見:http://udk.openoffice.org/common/man/tutorial/office_automation.html
德爾福開放式辦公室的信息,可以發現:
http://development.openoffice.org/#OLE
該網站ooomacros.org似乎下來,幸運的是,該後衛機器仍然有一個副本:
http://replay.web.archive.org/20090608051118/http://www.ooomacros.org/dev.php
祝你好運。
OpenOffice Calc支持以多種格式(HTML,製表符分隔,CSV等)導入數據。你的問題到底是什麼 - 如何從Delphi創建導入數據文件,或者如何將這些數據導入到Calc中,或者如何自動運行Calc並以編程方式創建電子表格? – 2011-04-20 17:07:55
如何自動化Calc並以編程方式創建spreasheet – Steve 2011-04-20 17:31:29
@steve問題的關鍵在於您沒有告訴我們您想要什麼。 – 2011-04-20 18:40:26