我的代码中有以下方法 ( createAdditionalSheetsInExcel
),它尝试为特定场景 ( runOutputNumber > 1
) 创建额外的工作表。它最终创建了一个 excel,但问题是当您尝试打开 excel 时,您最终会收到以下错误:
java代码中workBookObj.cloneSheet(index,sheetName)
没有引发错误,但是当我尝试打开excel文件时,出现以下错误:
我试图删除工作表中表格的格式,然后错误消失。所以肯定是和sheet里面表格的格式有关。
private static void createAdditionalSheetsInExcel(String tempOutputFileName, String outputFileName, int runOutputNumber) throws IOException {
FileInputStream fileIn = new FileInputStream(tempOutputFileName);
XSSFWorkbook workBookObj = new XSSFWorkbook(fileIn);
workBookObj.setWorkbookType(XSSFWorkbookType.XLSM);
runOutputNumber = 2;//Hard coded for clarification
if (runOutputNumber > 1) {
int initialNoOfSheets = workBookObj.getNumberOfSheets();
for (int runIndex = 2; runIndex <= runOutputNumber; runIndex++) {
for (int index = 0; index < initialNoOfSheets; index++) {
XSSFSheet sheet = workBookObj.getSheetAt(index);
String sheetName = sheet.getSheetName().trim()
.substring(0, sheet.getSheetName().length() - 1) + runIndex;
workBookObj.cloneSheet(index, sheetName);
}
}
}
FileOutputStream fileOut = new FileOutputStream(outputFileName);
workBookObj.write(fileOut);
fileOut.close();
workBookObj.close();
deleteTempExcel(tempOutputFileName);
}
excel尝试打开时出错:
我们发现“abc.xlsm”中的某些内容存在问题。你想尽可能多地恢复吗?如果您信任此工作簿的来源,请单击“是”。
错误:打开excel文件后:
修复的记录:来自 /xl/tables/table1.xml 部分的表(表)