2011-08-16 50 views
1

我使用JXL API將圖像添加到Excel文件。使用的庫:
jcommon(1.0.14)
jfreechart的(1.0.13)
JXL(2.6.10)通過JXL將圖像添加到Excel時圖像變得模糊

// chartImage is of type BufferedImage 
com.KeyPoint.PngEncoder encoder = new com.KeyPoint.PngEncoder(chartImage, true, 0, 0); 
jxl.write.WritableImage image = new jxl.write.WritableImage(0, 2, (chartImage.getWidth()/100),16, 
encoder.pngEncode()); 
sheet.addImage(image); 

的問題是,所述WritableImage構造採取寬度和高度中的行的術語和列(寬度:列0到列chartImage.getWidth()/ 100,高度:行2到行16)。這會導致圖表圖像模糊。
如何使用JXL將原始圖像導入到Excel中?請幫助。謝謝! :-)

回答

1

問題出在Excel中使用的壓縮或您使用的編碼器。

工作的解決方案是繪製大於預期圖像的圖表,然後讓Excel執行縮小比例。這確保了清晰度,儘管圖表填充的工作簿會比以前大得多。

AFAIK是唯一的解決方案。我與Word和PowerPoint有類似的問題,並且解決方案似乎在升級。

當您縮放圖表時,您應該注意字體大小也需要更改。

+0

+1我忘了保留原始圖像。 – trashgod

+0

傑出和簡單的解決方案Jes ...也爲我工作..謝謝! :) –

1

請勿直接使用PngEncoder。相反,請使用相關ChartUtilities方法,該方法將找到Sun/Oracle PNG編碼器(如果有)。

+0

謝謝trashgod ..試過這個也是......但是徒勞:( –

+0

可以縮小它'JFreeChart'與'JXL'嗎? – trashgod

+0

對不起,但我不明白(請原諒我的知識)。是WritableImage類迫使我分別指定圖像的寬度和高度,這是我認爲會導致圖像模糊的數字列和行數。圖像失去其清晰度(作爲圖表,應該非常清晰)。 –