gpt4 book ai didi

java - 我们可以使用java更新受密码保护的Excel工作表的行和列吗?

转载 作者:行者123 更新时间:2023-12-01 10:08:31 27 4
gpt4 key购买 nike

NPOIFSFileSystem fs = new NPOIFSFileSystem(new File("C://Users//RK5026051//Downloads//500_Lanes.xls"));
EncryptionInfo info = new EncryptionInfo(fs);
Decryptor d = Decryptor.getInstance(info);
if (d.verifyPassword("manh.com")) {
HSSFWorkbook wb = new HSSFWorkbook(d.getDataStream(fs));
} else {
System.out.println("wrong password");
}
// TODO Auto-generated method stub
}

错误--

Exception in thread "main" java.io.FileNotFoundException: no such entry: "EncryptionInfo", had: [_VBA_PROJECT_CUR, SummaryInformation, DocumentSummaryInformation, Workbook]
at org.apache.poi.poifs.filesystem.DirectoryNode.getEntry(DirectoryNode.java:370)
at org.apache.poi.poifs.filesystem.DirectoryNode.createDocumentInputStream(DirectoryNode.java:177)
at org.apache.poi.poifs.crypt.EncryptionInfo.<init>(EncryptionInfo.java:51)
at org.apache.poi.poifs.crypt.EncryptionInfo.<init>(EncryptionInfo.java:47)
at auto.excel.main(excel.java:15)

我正在使用 selenium 从应用程序下载文件,我需要更新 Excel 文件中的一些字段,然后再次上传。**

我知道我正在下载的Excel文件的密码,现在我需要编写一个代码以便它更新特定的行和列,但是我无法对该Excel文件进​​行任何操作,我猜这是因为它的密码 protected 。

我在堆栈溢出上尝试了一些答案,但我没有工作。我也没有在互联网上找到很多关于这个主题的 Material 。这是我尝试过的示例代码

NPOIFSFileSystem fs = new NPOIFSFileSystem(new File("D://protectedfile.xlsx"));
EncryptionInfo info = new EncryptionInfo(fs);
Decryptor d = Decryptor.getInstance(info);
if (d.verifyPassword("password")) {
XSSFWorkbook wb = new XSSFWorkbook(d.getDataStream(fs));
} else {
// Password is wrong
}

最佳答案

首先,我知道现在这并不流行,但你应该 really really read the Apache POI documentation on reading protected files 。由此,您会发现您正在尝试对 protected XLS 文件使用 XLSX 解密方法,这毫无疑问不起作用!

但是,还有一种更简单的方法 - WorkbookFactory can take the password of your spreadsheet打开时

所以,只需将代码更改为非常简单:

Workbook wb = WorkbookFactory.create(new File("protected.xls"), "password", true);

这将以只读模式打开工作簿,使用提供的密码读取它,并自动为您识别所需的类型

关于java - 我们可以使用java更新受密码保护的Excel工作表的行和列吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36305967/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com