OpenOffice Automation Delphi如何使用callfunction

时间:2010-10-14 14:08:06

标签: delphi automation openoffice-calc

请帮我解决以下问题: 我想使用OOoTools.pas确定开放式办公室计算列中的最大值 接口。 这就像我来的那样:

Procedure FindMaximum(oMySheet : Variant);
Var
            oFuncService : Variant;
Begin
  oFuncService := CreateUnoService('com.sun.star.sheet.FunctionAccess');
  ShowMessage(oFuncService.callFunction('MAX', VarArrayOf([10,20,50])));
End;

这有效

当然我想填写列的值,如:

ShowMessage(oFuncService.callFunction('MAX', VarArrayOf([oMySheet.getCellRangeByName('K8:K10')])));

我收到消息“com.star.lang.IllegalArgumentException:。”为什么? 感谢

1 个答案:

答案 0 :(得分:0)

我又来了。

callFunction方法导致此错误还是getCellRangeByName方法?

procedure FindMaximum(oMySheet : Variant);
var
  oFuncService : Variant;
  oCellRange: Variant;
  oResult: Variant;
begin
  oFuncService := CreateUnoService('com.sun.star.sheet.FunctionAccess');

  //error here?
  oCellRange := oMySheet.getCellRangeByName('K8:K10');

  //or error here?
  oResult := oFuncService.callFunction('MAX', VarArrayOf([oCellRange]));

  ShowMessage(oResult);
end;

我不得不说documentation有点不清楚。

如果我上面的示例中的callFunction方法出现错误,请尝试以下操作:

//CellRange not wrapped in a VariantArray
oResult := oFuncService.callFunction('MAX', oCellRange);