java - 使用 Apache POI 和 Java 比较一张纸中的数据并在同一工作簿中的另一张纸上书写

标签 java apache-poi 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.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");

此外,在比较字符串时,您可以使用equalsequalsIgnoreCase方法。这可能是一个不同的讨论,但仅供您引用。

data1.equals(data2)

data1.equalsIgnorCase(data2)

关于java - 使用 Apache POI 和 Java 比较一张纸中的数据并在同一工作簿中的另一张纸上书写,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33659302/

相关文章:

java - Java中类之间的事件处理

java - 如何在主 JFrame 表单的开头显示 JDialog?

java - Apache POI HMEF - 如何从 MS TNEF 消息获取附件大小?

java - Apache POI - 生成日期无法相应排序

java.lang.NoSuchMethodError : org. apache.poi.util.POILogger.log(ILjava/lang/Object;Ljava/lang/Throwable;)V

java - 如何在 java 枚举中搜索?

java - 读取文本文件在控制台中显示结果,不带分隔符

java - 使用 apache poi 转换时如何更改边距

scala - 如何在 akka http 中通过 POST 指定下载的文件名

r - 在 Excel 中复制具有格式的工作表