2013-08-18 72 views
-1

我正在做一個需要Excel自動化的德爾福(與Embarcadero XE3)的應用程序。TeeChart和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); 

插入成功,但圖表網格線不會不排隊(垂直)與工作表網格線:

enter image description here

任何想法如何解決這個問題?

+0

什麼將顯示在旁邊的單元格中? –

回答

1

三種可能的解決方案:

  1. 確保圖表的同一行高度導出到的位圖之前,
  2. 確保在Excel中同一行的高度,
  3. 彈力通過修改高度參數到圖像得到相等的行高。
+1

我知道Excel單元格的高度,但我不知道修改TeeChart單元格高度。怎麼辦? – ramiromd

+0

我在Excel中更改行高。和作品。 – ramiromd

1

首先需要注意的是,TeeChart中所謂的「Cells」實際上是左右軸交叉的網格線;並且在爲該軸繪製標籤時繪製這些軸網格線。所以你真正想要控制的是軸標籤的確切位置。

這些確切位置取決於圖表的尺寸,標籤的數量來繪製和它們的位置:

  • 圖表尺寸可以被修飾的形式直接在設計時改變整個TChart對象,或您還可以通過代碼更改圖表的ChartRect(由軸定界的區域)。

  • 默認情況下,軸中繪製的標籤會自動計算,您也可以手動設置它們。你可以玩軸Increment,MinimumMaximum屬性來調整自動計算,你可以ClearItems陣列和填充Add(position, text)函數。

+0

謝謝,但我解決了這個問題,增加了Excel單元格的高度。 – ramiromd