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倉庫的語句。