我想使用Apache POI打开受密码保护的docx文件。有人可以帮我提供完整的代码吗?无法通过此代码获得解决方案
线程“主”中的异常org.apache.poi.poifs.filesystem.OfficeXmlFileException:提供的数据似乎在Office 2007+ XML中。您正在调用与OLE2 Office文档有关的POI部分。您需要在org.apache.poi.poifs.storage处的org.apache.poi.poifs.storage.HeaderBlock。(HeaderBlock.java:126)处调用POI的不同部分来处理此数据(例如XSSF而不是HSSF)。 org.apache.poi.poifs.filesystem.NPOIFSFileSystem。(NPOIFSFileSystem.java:301)的.HeaderBlock。(HeaderBlock.java:113)org.apache.poi.hssf.usermodel.HSSFWorkbook。(HSSFWorkbook.java:413)在org.apache.poi.hssf.usermodel.HSSFWorkbook。(HSSFWorkbook.java:394)
POIFSFileSystem fs=new POIFSFileSystem(new FileInputStream("D:/abc.docx"));
EncryptionInfo info=new EncryptionInfo(fs);
Decryptor decryptor=Decryptor.getInstance(info);
if(!decryptor.verifyPassword("user"))
{
throw new RuntimeException("document is encrypted");
}
InputStream in=decryptor.getDataStream(fs);
HSSFWorkbook wb=new HSSFWorkbook(in);
File f=new File("D:/abc5.docx");
wb.write(f);
慕标琳琳
慕标5832272
相关分类