Hi Support,
I doubt that your excel did the automatically refresh for you, I think we can verify it by taking screenshot, could you rerun your script to generate a brand new file out1.xlsx file, and run the following script to directly take a screenshot from the file (don’t manually open out1.xlsx file before taking a screenshot). String range = D6:P26 of the spreadsheet (New) Buyer per category
public static File excel2PNG(com.aspose.cells.Workbook workbook, String range, String pngFilePath) throws Exception {
ExcelUtils.refreshFormulaAndPivotTables(workbook);
WorksheetCollection worksheetCollection = workbook.getWorksheets();
Worksheet sheet = null;
// check sheet and range
// 1. “sheet1” -> “sheet1” + all values ranges
// 2. “sheet1!A1:B1” -> “sheet1” + “A1:B1”
String sheetName = range.split("!")[0];
for (int i = 0; i < worksheetCollection.getCount(); i++) {
if (worksheetCollection.get(i).getName().equals(sheetName)) {
sheet = worksheetCollection.get(i);
break;
}
}
if (sheet == null) {
throw new IllegalArgumentException(
String.format(“Sheet %s is not found in the excel template.”, sheetName));
}
if (range.split("!").length == 1) {
range = ExcelUtils.findNonEmptyCellRange(sheet);
} else {
range = range.split("!")[1];
}
System.out.println(String.format(“Screenshot on range %s”, range));
sheet.getPageSetup().setPrintArea(range);
sheet.getPageSetup().setLeftMargin(0);
sheet.getPageSetup().setRightMargin(0);
sheet.getPageSetup().setTopMargin(0);
sheet.getPageSetup().setBottomMargin(0);
ImageOrPrintOptions orPrintOptions = new ImageOrPrintOptions();
orPrintOptions.setVerticalResolution(100);
orPrintOptions.setHorizontalResolution(100);
orPrintOptions.setRenderingHint(RenderingHints.KEY_COLOR_RENDERING,
RenderingHints.VALUE_COLOR_RENDER_SPEED);
orPrintOptions.setRenderingHint(RenderingHints.KEY_FRACTIONALMETRICS,
RenderingHints.VALUE_FRACTIONALMETRICS_ON);
orPrintOptions.setRenderingHint(RenderingHints.KEY_ALPHA_INTERPOLATION,
RenderingHints.VALUE_ALPHA_INTERPOLATION_SPEED);
orPrintOptions
.setRenderingHint(RenderingHints.KEY_DITHERING, RenderingHints.VALUE_DITHER_ENABLE);
orPrintOptions
.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
orPrintOptions.setRenderingHint(RenderingHints.KEY_TEXT_ANTIALIASING,
RenderingHints.VALUE_TEXT_ANTIALIAS_ON);
orPrintOptions.setCheckWorkbookDefaultFont(false);
orPrintOptions.setDefaultFont(“Microsoft YaHei”);
orPrintOptions.setQuality(100);
orPrintOptions.setOnePagePerSheet(true);
orPrintOptions.setImageType(ImageType.PNG);
orPrintOptions.setOnlyArea(true);
orPrintOptions.setGridlineType(GridlineType.HAIR);
SheetRender sr = new SheetRender(sheet, orPrintOptions);
sr.toImage(0, pngFilePath);
return new File(pngFilePath);
}
please kindly let me know what screenshot outcome you get, thanks in advance!