TeeChart和Excel网格线

时间:2013-08-18 05:58:15

标签: excel delphi teechart gridlines

我正在使用Delphi(使用Embarcadero XE3)进行需要Excel自动化的应用程序。

我需要将我的应用生成的TeeChart插入XLS文件。我将图表导出为BMP,如下所示:

// Globals.getEnvTempPath() returns the temp directory of the current Windows user.
bmpPath := Globals.getEnvTempPath() + 'enp.bmp';
// enpChart is my TeeChart instance.
enpChart.SaveToBitmapFile(bmpPath);

正确导出图像。
然后我按如下方式在Excel中插入图像:

//WkBook is the Workbook
sheet := WkBook.Worksheets[1];
{ params: @rutaImagen, @? @? @xPosicion @yPosicion @? @? }
sheet.shapes.addpicture(bmpPath,False, True, 145, 125, -1, -1);

插入成功,但图表网格线不会与WorkSheet网格线对齐(垂直):

enter image description here

任何想法如何解决这个问题?。

2 个答案:

答案 0 :(得分:1)

三种可能的解决方案:

  1. 在导出到位图之前确保图表的行高相同
  2. 确保Excel中的行高相同,
  3. 通过修改height参数来拉伸图像以获得相等的行高。

答案 1 :(得分:1)

首先请注意,在TeeChart中你所谓的“单元格”实际上是左右轴交叉的网格线;当为该轴绘制标签时,将绘制这些轴网格线。所以你真正愿意控制的是轴标签的确切位置。

这些确切的位置取决于图表的尺寸,要绘制的标签数量及其位置:

  • 可以修改图表尺寸,直接在表单中的设计时更改整个TChart对象,或者您也可以通过代码更改图表的ChartRect(由轴分隔的区域)。

  • 默认情况下会自动计算轴绘制的标签,也可以手动设置。您可以使用轴IncrementMinimumMaximum属性来调整自动计算,您可以ClearItems数组并填充它Add(position, text)功能。