1

我使用 JXL API 将图像添加到 Excel 文件。使用的库:
jcommon (1.0.14)
jfreechart (1.0.13)
jxl (2.6.10)

// 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?请帮忙。谢谢!:-)

4

2 回答 2

1

不要PngEncoder直接使用。相反,请使用相关ChartUtilities方法,该方法将找到 Sun/Oracle PNG 编码器(如果可用)。

于 2011-08-16T18:07:36.123 回答
1

问题在于 Excel 中使用的压缩或您使用的编码器。

一个可行的解决方案是绘制比预期图像更大的图表,然后让 Excel 进行缩小。尽管充满图表的工作簿将比以前大得多,但这确保了清晰度。

AFAIK 这是解决问题的唯一方法。我在使用 Word 和 PowerPoint 时遇到过类似的问题,而且解决方案似乎正在升级。

当您缩放图表时,您应该注意字体大小也需要更改。

于 2011-08-17T12:09:14.183 回答