Java 添加的文本未显示在Excel工作表中

Java 添加的文本未显示在Excel工作表中,java,excel,Java,Excel,我正试图在.xlsx工作簿(工作簿已经存在)中写入一些值,但我无法这样做。在下面给出的代码中,我试图写“PASS”这个词。据我所知,cell.setCellValue(“PASS”)正在设置单元格的值,但当我打开.xlsx工作表时,该值不会显示。我使用System.out.println(cell.getStringCellValue())查找值是否分配给单元格,它将值打印为PASS public static void writeResultInExcel() throws InvalidFo

我正试图在.xlsx工作簿(工作簿已经存在)中写入一些值,但我无法这样做。在下面给出的代码中,我试图写“PASS”这个词。据我所知,
cell.setCellValue(“PASS”)
正在设置单元格的值,但当我打开.xlsx工作表时,该值不会显示。我使用
System.out.println(cell.getStringCellValue())
查找值是否分配给单元格,它将值打印为PASS

public static void writeResultInExcel() throws InvalidFormatException, IOException{
    int testScript=0;
    Cell cell = null;
    fi = new File("D:/Selenium/Excel/Example.xlsx");
    fis = new FileInputStream(fi);  
    W = WorkbookFactory.create(fi);
    Sheet sh = W.getSheetAt(testScript);
    cell=sh.createRow(0).createCell(0);
    cell.setCellValue("PASS");
    fis.close();
    try {
        FileOutputStream fos = new FileOutputStream("fi");
        W.write(fos);
        System.out.println(cell.getStringCellValue());
    } catch (FileNotFoundException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    } catch (IOException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
}

尝试关闭FileOutputStream。然后,它应该释放与之相关的任何内容

try {
    FileOutputStream fos = new FileOutputStream(fi);
    W.write(fos);
    fos.close();
    System.out.println(cell.getStringCellValue());

您正在另一个位置(“fi”)写入xls:FileOutputStream fos=新FileOutputStream(“fi”); 您的代码应该是这样的:


FileOutputStream fos=newfileoutputstream(“D:/Selenium/Excel/Example.xlsx);

感谢您的回复,我确实关闭了FileOutputStream并执行了代码,现在它给出了以下异常“java.io.IOException:无效的头签名;读取0x0000000000000000,预期为0xE11AB1A1E011CFD0“。似乎我的文件实际上不是.xlsx文件,如何创建一个.xlsx文件,允许我对其执行一些操作…再次感谢您。