【问题标题】:Apache POI update excell JavaApache POI 更新 excel Java
【发布时间】:2014-09-24 09:07:35
【问题描述】:

我正在尝试使用 Apache POI 更新 java 中的 .xlsx 文件。

这是我的代码:

import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import org.apache.poi.xssf.usermodel.XSSFCell;
import org.apache.poi.xssf.usermodel.XSSFRow;
import org.apache.poi.xssf.usermodel.XSSFSheet;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;

public class updateResults {


   void updateResults(String path) throws FileNotFoundException, IOException{
    FileInputStream fis = new FileInputStream(new File(path));
    XSSFWorkbook workbook = new XSSFWorkbook (fis);
    XSSFSheet sheet = workbook.getSheetAt(0);
    XSSFRow row1 = sheet.getRow(1);
    XSSFCell cell1 = row1.getCell(1);
    cell1.setCellValue("Mahesh");
    XSSFRow row2 = sheet.getRow(2);
    XSSFCell cell2 = row2.getCell(1);
    cell2.setCellValue("Ramesh");
    fis.close();
    FileOutputStream fos =new FileOutputStream(new File(path));
    workbook.write(fos);
    fos.close();
    System.out.println("Done");

 } 
 }

问题是我在“32”行得到一个空指针异常,即XSSFCell cell2 = row2.getCell(1);

有人知道为什么会这样吗?

【问题讨论】:

  • 您的工作表有多少行?
  • 将其放入一个循环中,限制为您期望的行数,并在分别调用 getCell 或 getValue 之前对行和单元格进行空检查。
  • 谢谢 :) 有史以来最有帮助的问题 :) @Jens
  • 异常意味着你没有第 2 行。这就是为什么它返回 null 所以 nullpointerexception。

标签: java apache-poi


【解决方案1】:

NullPointerException 在应用程序尝试使用具有null 值的对象引用时抛出。其中包括: 在 null reference 引用的对象上调用实例方法。 可能是您的第 2 行没有价值,所以 nullpointerexception。

【讨论】:

  • 谢谢。我现在有另一个问题。如果我通过 Excel 手动更改单元格或行的宽度或高度,然后尝试发送更新,则会出现异常“线程中的异常“AWT-EventQueue-0”java.lang.NullPointerException”
  • 新问题...新问题亲爱的... :)
猜你喜欢
  • 2017-12-13
  • 2015-11-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-11-21
  • 2016-04-12
  • 2017-04-18
相关资源
最近更新 更多