import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import org.apache.poi.sl.usermodel.Sheet;
import org.apache.poi.xssf.usermodel.XSSFSheet;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
public class WriteExcelSheet {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
File src = new File ("C:\\Java_Selenium_Temp\\QATempData.xlsx");
try {
FileInputStream fis = new FileInputStream(src);
XSSFWorkbook wb = new XSSFWorkbook(fis);
XSSFSheet qa = wb.getSheetAt(0);
XSSFSheet repo = wb.getSheet("report");
String data1 = qa.getRow(0).getCell(0).getStringCellValue();
String data2 = qa.getRow(0).getCell(1).getStringCellValue();
//qa.getRow(0).createCell(2).setCellValue("Fail");
//qa.getRow(1).createCell(2).setCellValue("Pass");
if(data1 !=data2){
System.out.println("Fata");
repo.getRow(1).createCell(1).setCellValue("Test");
}
//reporx.getRow(0).createCell(1).setCellValue("FPASS");
FileOutputStream fos = new FileOutputStream(src);
wb.write(fos);
wb.close();
System.out.println("writing successfull ....");
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch(IOException ioe) {
System.out.println("IO Exception");
}
}
}
我尝试从一张纸中读取数据,比较两列,然后根据比较将数据写入另一张纸上。 这是上面显示的我的代码
我收到的错误是,第一行“Fata”是第 38 行的输出,错误显示在第 39 行
Fata
Exception in thread "main" java.lang.NullPointerException at ReadExcel.WriteExcelSheet.main(WriteExcelSheet.java:39)
任何帮助我为什么会得到这个或者我该怎么做
最佳答案
您可能想先创建行。
repo.createRow(1).createCell(1).setCellValue("Test");
此外,在比较字符串时,您可以使用equals
或equalsIgnoreCase
方法。这可能是一个不同的讨论,但仅供您引用。
data1.equals(data2)
或
data1.equalsIgnorCase(data2)
关于java - 使用 Apache POI 和 Java 比较一张纸中的数据并在同一工作簿中的另一张纸上书写,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33659302/