package test;
import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.util.Base64;
import com.aspose.cells.Chart;
import com.aspose.cells.ImageOrPrintOptions;
import com.aspose.cells.SheetRender;
import com.aspose.cells.Workbook;
import com.aspose.cells.Worksheet;
import util.AsposeLicenseUtil;
public class Test {
public static void main(String[] args) throws Exception {
ByteArrayOutputStream baos = new ByteArrayOutputStream();
String area = "A1:W40";// 截图A1:W40的区域
try {
if (AsposeLicenseUtil.getExcelLicense()) {
Workbook wb = new Workbook(new FileInputStream(new File("c:/test/test.xlsx")));
Worksheet sheet = wb.getWorksheets().get(0);
if (!"".equals(area)) {
// 设置打印区域,因为我们只想渲染切片器。
sheet.getPageSetup().setPrintArea(area);
// 指定“图像”或“打印”选项,将“每页一页”和“仅区域”设置为“真”。
ImageOrPrintOptions imgOpts = new ImageOrPrintOptions();
// imgOpts.setHorizontalResolution(200);//水平分辨率
// imgOpts.setVerticalResolution(200);//垂直分辨率
imgOpts.setImageType(com.aspose.cells.ImageType.PNG);
imgOpts.setOnePagePerSheet(true);// 单页纸
imgOpts.setOnlyArea(true);// 仅限区域
// 创建工作表渲染对象并将工作表渲染到图像。
SheetRender sr = new SheetRender(sheet, imgOpts);
sr.toImage(0, baos);
} else {
Chart chart = sheet.getCharts().get(0);
// 获取图表图像
ImageOrPrintOptions imgOpts = new ImageOrPrintOptions();
imgOpts.setImageType(com.aspose.cells.ImageType.PNG);
// 保存图表图像文件。
chart.toImage(baos, imgOpts);
}
// base64图片
String encode = Base64.getEncoder().encodeToString(baos.toByteArray());
System.out.println(encode);
}
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
if (baos != null) {
baos.close();
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
}