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
}
Error--javaを使用してパスワードで保護されたExcelシートの行と列を更新できますか?
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)
私はセレンを使用してアプリケーションからファイルをダウンロードしています、私は、Excelファイル内のいくつかのフィールドを更新し、再度アップロードする必要があります。**
私が知っていますExcelファイルのパスワードをダウンロードしているので、特定の行と列を更新するようにコードを書く必要がありますが、そのExcelファイルでは操作できません。パスワードが保護されているからです。
私はスタックオーバーフローでいくつかの回答を試みましたが、私は動作していません。また、私はこのトピックについてインターネット上に多くの資料を手に入れませんでした。ここで iは
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
}
可能な複製: - http://stackoverflow.com/questions/25994772/read-password-protected-excel-file-xlsx-using-java –
あなたはwhコードが失敗するのですか?つまり、 'verifyPassword'ブロックが実行されたのでしょうか、' else'ですか? –
開こうとしているファイルの種類は? '.xls'または' .xlsx'ですか? (彼らは異なっている!) – Gagravarr