1、因
平时将数据生成简单报表,大多数用的都Apache poi,但要是对生成的Excel进行截图保存或者发送邮件使用,这里poi暂时不能实现。
对Excel的sheet 截图 可以用aspose-cells来实现:
public static void main(String[] args) throws Exception {
Workbook book = new Workbook("D:\\test\\testChart.xlsx");
ImageOrPrintOptions imgOptions = new ImageOrPrintOptions();
ImageFormat format = ImageFormat.getJpeg();
imgOptions.setImageFormat(format);
Worksheet sheet = book.getWorksheets().get(0);
worksheet.getPageSetup().setPrintArea("A1:N22");
SheetRender sheetRender = new SheetRender(sheet, imgOptions);
sheetRender.toImage(0, "D:\\test\\testChart.jpg");
}
截图效果可以看到红框标记处有明显的水印。
2、破
修改了License.class,去掉了截图水印。
这里仅供个人学习使用,商用的话还是要购买人家的License的。
public static void main(String[] args) throws Exception {
//验证License
License.freeTrial();
Workbook book = new Workbook("D:\\test\\testChart.xlsx");
ImageOrPrintOptions imgOptions = new ImageOrPrintOptions();
ImageFormat format = ImageFormat.getJpeg();
imgOptions.setImageFormat(format);
Worksheet worksheet = book.getWorksheets().get(0);
worksheet.getPageSetup().setPrintArea("A1:N22");
SheetRender sheetRender = new SheetRender(worksheet, imgOptions);
sheetRender.toImage(0, "D:\\test\\testChart.jpg");
}
截图效果对比之前是没有水印的。
3、其他
关于aspose.cells的workbook和poi的workbook,可以通过xssfWorkbook的InputStream来构建一个aspose.cells的workbook。
这里是资源里缺少的部分代码,提供参考;
//将poi xssfWorkbook截图做base64编码
public static String convertToImageBase64(XSSFWorkbook xssfWorkbook, int sheetNo, String startPoint, String endPoint) {
//...
//通过xssfWorkbook的InputStream来构建一个aspose.cells的workbook。
Workbook workbook = new Workbook(toByteArrayResource(xssfWorkbook).getInputStream());
//...
}
//
public static ByteArrayResource toByteArrayResource(XSSFWorkbook workbook) throws IOException {
//临时缓冲区
ByteArrayOutputStream out = new ByteArrayOutputStream();
//创建临时文件
workbook.write(out);
byte[] bookByteAry = out.toByteArray();
InputStream in = new ByteArrayInputStream(bookByteAry);
return new ByteArrayResource(IOUtils.toByteArray(in));
}
4、熄灯
资源下载(5积分):aspose-cells-19.3.jar
资源包含去水印版aspose-cells-19.3-crack.jar和原版aspose-cells-19.3-jar,
还有demo使用样例,以及样例要用到的excel,(demo缺失的方法toByteArrayResource见本文【3、其他】)
以及将jar导入本地maven仓库的语句。