gpt4 book ai didi

java - 无法使用 Apache POI ss 用户模型添加工作表

转载 作者:行者123 更新时间:2023-12-01 09:06:43 24 4
gpt4 key购买 nike

我正在尝试使用 Apache POI 添加工作表,但是当我尝试保存 excel 时,出现空指针异常。不知道为什么会发生这种情况,但是 excel 的数据更新完美。

发生异常:org.apache.poi.POIXMLException:java.lang.NullPointerException

public XL_ReadWrite(String path) throws Exception{
this.path = path;
try{
fin = new FileInputStream(path);
workbook = WorkbookFactory.create(fin);
sheet = workbook.getSheetAt(0);
fin.close();
} catch(FileNotFoundException e){
throw new Exception("Exception occurred while finding the file : " + path + " while XLS initialize .Exception details : "+e.getMessage());
} catch(IOException e){
throw new Exception("I/O interrupted exception occurred while XLS initialize .Exception details : " + e.getMessage());
} catch(Exception e){
throw new Exception("Exception occurred while XLS initialize .Exception details : "+ e.getMessage());
}
}

public void addSheet(String sheetName) throws Exception{
File file = new File(path);
String fileExtn = Globals.GC_EMPTY;
workbook = null;
if (file.exists()) {
try {
fileExtn = FilenameUtils.getExtension(file.getAbsolutePath());
if(fileExtn.equals("xlsx")){
workbook = (XSSFWorkbook) WorkbookFactory.create(file);
}else if(fileExtn.equals("xls")){
workbook = (HSSFWorkbook) WorkbookFactory.create(file);
}
sheet = workbook.createSheet(sheetName);
}catch (InvalidFormatException e) {
throw new Exception("InvalidFormatException occurred while adding sheet : " + sheetName + ". Exception details : "+e.getMessage());
}catch(IOException e){
throw new Exception("IOException occurred while adding sheet : " + sheetName + ". Exception details : "+e.getMessage());
}
}
else{
throw new FileNotFoundException("Error : " + path + " not found");
}
}

public void saveXL() throws Exception{
try{
fout = new FileOutputStream(path);
this.workbook.write(this.fout);
this.fout.close();
}catch(Exception e){
throw new Exception("Exception occurred while saving excel. Exception details :" +e.getMessage());
}
}

最佳答案

问题已修复

if(fileExtn.equals("xlsx")){
workbook = (XSSFWorkbook) WorkbookFactory.create(new FileInputStream(path));
}else if(fileExtn.equals("xls")){
workbook = (HSSFWorkbook) WorkbookFactory.create(new FileInputStream(path));
}

关于java - 无法使用 Apache POI ss 用户模型添加工作表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41210223/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com