我正在使用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网格线对齐(垂直):
任何想法如何解决这个问题?。
答案 0 :(得分:1)
三种可能的解决方案:
答案 1 :(得分:1)
首先请注意,在TeeChart中你所谓的“单元格”实际上是左右轴交叉的网格线;当为该轴绘制标签时,将绘制这些轴网格线。所以你真正愿意控制的是轴标签的确切位置。
这些确切的位置取决于图表的尺寸,要绘制的标签数量及其位置:
可以修改图表尺寸,直接在表单中的设计时更改整个TChart对象,或者您也可以通过代码更改图表的ChartRect
(由轴分隔的区域)。
默认情况下会自动计算轴绘制的标签,也可以手动设置。您可以使用轴Increment
,Minimum
和Maximum
属性来调整自动计算,您可以Clear
轴Items
数组并填充它Add(position, text)
功能。