我使用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?请帮助。谢谢! : - )
答案 0 :(得分:1)
请勿直接使用PngEncoder
。相反,请使用相关的ChartUtilities
方法,如果可用,将找到Sun / Oracle PNG编码器。
答案 1 :(得分:1)
问题在于Excel中使用的压缩或您使用的编码器。
有效的解决方案是绘制比预期图像大的图表,然后让Excel执行缩小。这确保了清晰度,尽管填充图表的工作簿将比以前大得多。
AFAIK是解决问题的唯一方法。我在使用Word和PowerPoint时遇到过类似的问题,解决方案似乎也在升级。
缩放图表时,您应注意字体大小也需要更改。