AsposeCells Excel转Pdf时异常原因不外乎几种,检测文件时,发现有多个隐藏的文件,或者隐藏的一些属性,导致文件无法正常转换,暴力的方式是直接删除隐藏的工作表。
示例:
String result = ""; Workbook wb = new Workbook(file.getPath()); // 设置打印区域为null,否则转为pdf时,有些excel数据会丢失。 WorksheetCollection ws = wb.getWorksheets(); for (int i = 0; i < ws.getCount(); i++) { Worksheet sWorksheet = ws.get(i); //判断该工作表是否隐藏 boolean visible = sWorksheet.isVisible(); if (!visible){ //工作表隐藏,直接删除当前工作表。 sWorksheet.clearComments(); continue; } PageSetup pageSetup = sWorksheet.getPageSetup(); // pageSetup.setBlackAndWhite(true); 当前也设置为黑白 int rowNum = sWorksheet.getCells().getMaxRow(); // System.out.println("rowNum:"+rowNum); int colNum = sWorksheet.getCells().getMaxColumn(); System.out.println("行:" + rowNum + ",列:" + colNum); // 行数超过,或者列数超过,设置默认值 if (rowNum > MAX_ROW_THRESHOLD || colNum > MAX_COL_THRESHOLD) { rowNum = MAX_ROW_THRESHOLD; colNum = MAX_COL_THRESHOLD; } System.out.println("行:" + rowNum + ",列:" + colNum); // 自适应列宽 sWorksheet.