я вот тоже в поисках намучился инфы для openoffice
примерчик для calc мож кому пригодится
procedure TForm1.Button1Click(Sender: TObject);
var
StarOffice, StarDesktop, Document, Sheets, Sheet, OuterBorder, Cell: variant;
J, I: integer;
begin
StarOffice := CreateOleObject('com.sun.star.ServiceManager');
StarDesktop := StarOffice.createInstance('com.sun.star.frame.Desktop');
Document := StarDesktop.LoadComponentFromURL('private:factory/scalc', '_blank', 0,
VarArrayCreate([0, -1], varVariant));
OuterBorder := StarOffice.Bridge_GetStruct('com.sun.star.table.BorderLine');
Sheets := Document.getSheets;
Sheet := Sheets.getByName('Лист1);
Cell := Sheet.getCellRangeByName('A4:D4').Merge(true);
Cell := Sheet.getCellRangeByName('C10:C13').setPropertyValue('CellBackColor', 255);
{ cell := sheet.getCellRangeByPosition(0, 1, 0, 3); Cell.cellBackColor :=200;}
J := 1; I := 1;
Cell := Sheet.getCellByPosition(j, i);
Cell.charColor := 55;
Cell.charHeight := 14;
Cell.CharWeight:= 150;
Cell.charUnderline := true;
Cell.charPosture := true;
Cell.charStrikeout := true;
Cell.SetString('The first line.');
Cell := Sheet.getCellByPosition(j, i+1);
Cell.SetString('The seconed line ');
OuterBorder.color := 155;
OuterBorder.lineDistance := 0;
OuterBorder.innerLineWidth := 0;
OuterBorder.outerLineWidth := 1;
Cell.leftBorder := OuterBorder;
Cell.rightBorder := OuterBorder;
Cell.topBorder := OuterBorder;
Cell.bottomBorder := OuterBorder;
StarOffice := Unassigned;
end;