在 OpenOffice Calc 中创建图表

Posted

技术标签:

【中文标题】在 OpenOffice Calc 中创建图表【英文标题】:Create chart in OpenOffice Calc 【发布时间】:2010-10-11 08:44:01 【问题描述】:

我正在尝试使用OOoTools.pas 界面创建一个OpenOffice Calc 图表。代码是这样的:

/////////////////////////////// CODE //////////////////////////////////

procedure TForm1.ProcessChart(aFilename : String);
Var
                  oTheFile, oAllSheets, oMySheet, oCharts,
                  oCellRangeAddress, oRectangle, oSize : Variant;
begin
 ConnectOpenOffice;
   oTheFile := OpenSheet(aFilename, True);
   oAllSheets:= oTheFile.Sheets;

   oMySheet:= oAllSheets.getByIndex(0);  // first sheet of the spreadsheet

   oCharts := oMySheet.getCharts;

   oCellRangeAddress := oTheFile.Bridge_getStruct('com.sun.star.table.CellRangeAddress');
   oCellRangeAddress.Sheet       := 0;// '1ere feuille du graphique
   oCellRangeAddress.StartColumn := 0;// 'Ligne 1
   oCellRangeAddress.StartRow    := 0;// 'Colonne A
   oCellRangeAddress.EndColumn   := 3;// 'Colonne D
   oCellRangeAddress.EndRow      := 29;// 'Ligne 30

   oRectangle := oTheFile.Bridge_GetStruct('com.sun.star.awt.Rectangle');
   oRectangle := oMySheet.Bridge_GetStruct('com.sun.star.awt.Rectangle');
   oRectangle.X      := 8000;
   oRectangle.Y      := 1000;
   oRectangle.Width  := 5000;
   oRectangle.Height := 5000;

   // Type Error Mismatch error on this call:       
   oCharts.addNewByName('LogData',
                        oRectangle,
                        oCellRangeAddress,
                        true,
                        true);

 DisconnectOpenOffice;
End;

/////////////////////////////// END CODE //////////////////////////////////

oCharts.addNewByName 调用中,我收到“类型不匹配”错误并且没有进一步的信息可能是什么错误。

或者我必须使用其他方法吗?

【问题讨论】:

【参考方案1】:

addNewByName 的 aRanges 参数需要 com.sun.star.table.CellRangeAddress 的序列,而您提供的不是 CellRangeAddress 结构的序列,而是结构本身。

试试这个:

oCharts.addNewByName('LogData',
                        oRectangle,
                        VarArrayOf(oCellRangeAddress),
                        true,
                        true);

【讨论】:

以上是关于在 OpenOffice Calc 中创建图表的主要内容,如果未能解决你的问题,请参考以下文章

在 OpenOffice Calc 中自动化图表的标题

OpenOffice Calc 自动化如何更改散点图的图表标签

OpenOffice Calc 时间转换

由 EPPlus 4.1 库以 .xlsx 格式创建的图表未在 openoffice 或 libreoffice 中显示

如何在 C++ 中创建 OpenOffice 文档 [重复]

我需要删除值为 0 的标签 [LibreOffice Calc]