再次使用delphi进行openoffice calc

发布于 2025-01-05 23:10:38 字数 127 浏览 1 评论 0原文

我不仅在这里使用搜索引擎,而且厌倦了它;只是想要一个简单问题的简单答案(或链接):

如何打开计算表并从 Delphi (7) 代码将 123 写入单元格 A1 ? (或者有什么 calc 的 hello worlds 吗?)

I was using search engine and not just here, and got tired of it; just want a simple answer (or a link) for a simple question:

How do I open a calc sheet and write 123 into cell A1 from Delphi (7) code? (Or any hello worlds for calc?)

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

独行侠 2025-01-12 23:10:38

你可以看一下这个演示:
http://sourceforge.net/projects/ooomacros/files/Delphi%20OOo/Version%201.2/Delphi_OOo_v12en.zip/download

我一个月前测试了文档部分(有效),我的 example.pas 中还有一些电子表格代码。

You can take a look at this demo:
http://sourceforge.net/projects/ooomacros/files/Delphi%20OOo/Version%201.2/Delphi_OOo_v12en.zip/download

I tested the Document part a month ago (which works), and I there is also some spreadsheet code in the examples.pas.

疧_╮線 2025-01-12 23:10:38

好的,经过一番研究并使用上面的信息,我非常感谢,这是一个简单的答案:

使用部分

Uses ComObj, OOoMessages, OOoTools, OOoConstants, OOoXray;

主要代码

打开空白文档,将“hello 123”文本写入 a1,然后将其保存在桌面上

procedure HelloWorldExample;
var
  mentesiOpciok,oSheet,oSheets,myCalc : Variant;
begin
  ConnectOpenOffice;
  myCalc:=StarDesktop.loadComponentFromURL('private:factory/scalc', '_blank', 0, dummyArray);
  oSheets:=myCalc.getSheets;
  oSheet:=oSheets.getByIndex(0);
  //oSheet.getCellByPosition(0, 0).SetValue(123);
  oSheet.getCellByPosition(0, 0).SetFormula('hello 123!');

  mentesiOpciok:=CreateProperties(['FilterName', 'MS Excel 97']);
  myCalc.storeToURL('file:///C:/Documents and Settings/Zéiksz/Asztal/calcdoc.xls', mentesiOpciok);
  showMessage('kész :)');
  myCalc.close(true);
  DisconnectOpenOffice();
end;

使用 getcellbyposition(... ).setvalue 设置数值,或 setformula 设置字符串(不太确定,但里面有一个字符串,哈哈)。

Péter

编辑:我在互联网上找到的最有用的信息都在这个论坛中:
http://www.oooforum.org/forum/viewtopic.phtml?t=4996

Ok, after some research and using the informations above for I thank yas a lot, here is a simple answer:

uses part

Uses ComObj, OOoMessages, OOoTools, OOoConstants, OOoXray;

main code

open blank document, write 'hello 123' text into a1 then save it on desktop

procedure HelloWorldExample;
var
  mentesiOpciok,oSheet,oSheets,myCalc : Variant;
begin
  ConnectOpenOffice;
  myCalc:=StarDesktop.loadComponentFromURL('private:factory/scalc', '_blank', 0, dummyArray);
  oSheets:=myCalc.getSheets;
  oSheet:=oSheets.getByIndex(0);
  //oSheet.getCellByPosition(0, 0).SetValue(123);
  oSheet.getCellByPosition(0, 0).SetFormula('hello 123!');

  mentesiOpciok:=CreateProperties(['FilterName', 'MS Excel 97']);
  myCalc.storeToURL('file:///C:/Documents and Settings/Zéiksz/Asztal/calcdoc.xls', mentesiOpciok);
  showMessage('kész :)');
  myCalc.close(true);
  DisconnectOpenOffice();
end;

use getcellbyposition(...).setvalue to set numeric values, or setformula for strings (not really sure, but there is a string in it LOL).

Péter

edit: most useful information I found on the Internet is in this forum:
http://www.oooforum.org/forum/viewtopic.phtml?t=4996

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文