OpenOffice Automation Delphi, как использовать функцию вызова - PullRequest
0 голосов
/ 14 октября 2010

пожалуйста, помогите мне со следующим: Я хочу определить максимальное значение в столбце 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 голосов
/ 14 октября 2010

Вот и я снова.

Это метод 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;

Я должен сказать, что нахожу документацию немного неясной.

Если у вас есть ошибка в методе callFunction в моем примере выше, попробуйте следующее:

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