我刚刚开始使用.xlsm文件中的XSSF库,而且还很新。我正面临着.xlsm阅读和写作的问题。 我在尝试打开书面文件时收到以下消息
删除记录:/xl/workbook.xml部分(工作簿)的命名范围
我发布了我的代码
String fileName = "C:\\Ishan\\Test.xlsm";
String fileName2 = "C:\\Ishan\\Test4.xlsm";
FileOutputStream fout = null;
FileInputStream fin = null;
XSSFWorkbook workbook=null;
String[] dropDownList = new String[5];
dropDownList[0]="1";
dropDownList[1]="2"; dropDownList[2]="3";
dropDownList[3]="4"; dropDownList[4]="5";
try {
fin = new FileInputStream(new File(fileName));
workbook = new XSSFWorkbook(OPCPackage.open(fin)
);
XSSFSheet sheet = workbook.createSheet("Data Validation");
XSSFRow row = sheet.getRow(0);
if(row == null)
row = sheet.createRow(0);
XSSFCell cell = row.getCell(0);
if(cell == null)
cell = row.createCell(0);
row = sheet.createRow(0);
cell = row.createCell(10);
cell.setCellValue("Hello");
XSSFName name = workbook.createName();
name.setNameName("data");
fout = new FileOutputStream(new File(fileName2));
workbook.write(fout);
fout.close();
System.out.println("xlsm created successfully..");
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (InvalidFormatException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}finally{
try{
if(fout!=null){
fout.flush();
fout.close();
fout = null;
}
if(workbook!=null){
workbook = null;
}
if(fin!=null){
fin.close();
fin = null;
}
}catch(Exception e){
e.getMessage();
}
}
我甚至没有开始使用命名范围用于任何目的,只是创建。可能是什么问题以及我可以采取什么方法来纠正? 我正在使用Apache POI v3.8。