在java中,如何解锁文件或写入Excel打开的文件



我目前正在编写一个输出到 excel 文件的程序。(同开的上面写着)我有一种感觉,用户会在 excel 中打开文件,然后再在我的应用程序中修改。虽然我确实意识到我可以保存一个不那么整洁的新文件。

我正在寻找一种从Excel解锁文件或强制写入文件的方法,你能帮忙吗?

我最终需要一种在 Excel 中打开文件并且仍然能够从 java 写入文件的方法。

谢谢!

编辑:

为了回答我为什么要解锁文件的问题,我正在处理的程序没有内置的 excel 查看器,只有基于标准化输入进行更新的能力。

因此,用户仍将在 excel 中查看该文件。如果他们需要先打开这个程序,那也没关系。

我想另一种选择是如何在 Excel 仍然可以读取文件时以写入权限打开文件?

目前打开时我正在使用Apache POI HSSF/XSSF,一旦我的程序打开文件,如果我尝试在excel中打开它,我会收到以下错误:"Excel无法打开文件,因为文件格式无效。验证文件是否未损坏,以及文件扩展名是否与文件格式匹配。

文件被锁定是有充分理由的。试着从excel程序员的恭敬中思考问题。如果您编写了一个锁定文件的程序,则希望独占访问该文件,因为必须确保同时不会修改该文件。

因此,即使您可以解锁它,也可能导致 excel 或通常其他程序崩溃,因为它可能会以不一致的状态读取文件。

我建议您查看文件是否被锁定,如果通知用户您要更新的文件已在另一个程序中打开。用户应先关闭此程序,然后程序才能继续。

在创建 Excel 文件之前将文件可写设置为 true,然后在创建 Excel 文件后将文件设置为只读,如下所示:

try{
        File file = new File("*path*");
          file.setWritable(true);
            OutputStream out = new FileOutputStream(file.getPath());
            HSSFWorkbook wb=new HSSFWorkbook();
             //Create Excel File
            wb.write(out);
            out.close();
            file.setReadOnly();
}catch (FileNotFoundException e){
             e.printStackTrace();
               }

必须将文件设置为只读,以便 java 程序在文件打开时写入文件

相关内容

  • 没有找到相关文章

最新更新