使用Aspose.cells截圖並去除截圖中水印_含資源下載鏈接

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倉庫的語句。
在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章