【问题标题】:Delphi OpenOffice automation scalc center cell textDelphi OpenOffice 自动化计算中心单元格文本
【发布时间】:2010-12-22 00:29:18
【问题描述】:

您好,有人可以帮我解决以下问题: 我想通过 Delphi 和 OOoTools 工具包在 scalc open office 电子表格单元格中将文本居中。

以下代码不起作用:

sRange := '$A$3:$A$3';
ooParams := CreateUnoStruct('com.sun.star.beans.PropertyValue', 1);
ooParams[0].Name  := 'ToPoint';
ooParams[0].Value := sRange;
execDispatch('.uno:GoToCell', ooParams);

ooParams := CreateUnoStruct('com.sun.star.beans.PropertyValue', 1);
ooParams[0].Name  := 'HorizontalJustification';
ooParams[0].Value := 'com.sun.star.table.CellHoriJustify.CENTER';
execDispatch('.uno:HorizontalJustification', ooParams);

有人知道为什么不吗? 感谢广告

【问题讨论】:

标签: delphi automation openoffice.org cells centering


【解决方案1】:

Horizo​​ntalJustification 似乎需要一个枚举值,但您给出的是一个字符串。您必须查找 com.sun.star.table.CellHoriJustify.CENTER 的值并用它填写您的 ooParams[0].Value

这是一种查找枚举值的方法:http://www.oooforum.org/forum/viewtopic.phtml?t=16383

在你的情况下,com.sun.star.table.CellHoriJustify.CENTER 等于 2,所以你需要:

ooParams[0].Name  := 'HorizontalJustification';
ooParams[0].Value := 2;

【讨论】:

  • 非常感谢您抽出宝贵的时间,这很有效,我还必须为最后一个参数填写 0:ooParams := CreateUnoStruct('com.sun.star.beans.PropertyValue', 0);亲切的问候广告。
  • CreateUnoStruct 的最后一个参数指定要创建的序列(VarArray)的最大索引。所以当你说 1 时,你会得到一个有 2 个元素 [0..1] 的 VarArray,但你只需要 1 个元素 [0..0],所以 maximumindex 为 0。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-12-21
  • 2014-07-16
  • 2021-10-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多