2010-09-09 184 views

回答

1

您可以com4j嘗試。

http://msdn.microsoft.com/en-us/library/microsoft.office.interop.word.documents.open2000.aspx

由於是在「開放」 - 方法稱爲「PasswordDocument」的參數,我認爲這是可以打開一個密碼保護的文件。

希望這是你正在尋找;)

編輯:我在Word中記錄了這個宏。

Documents.Open FileName:="test.doc", ConfirmConversions:= _ 
    False, ReadOnly:=False, AddToRecentFiles:=False, PasswordDocument:= _ 
    "hallo", PasswordTemplate:="", Revert:=False, WritePasswordDocument:= _ 
    "hallo", WritePasswordTemplate:="", Format:=wdOpenFormatAuto 

所以在com4j open方法看起來應該事端像這樣(密碼爲「你好」):

 _Document document = app.documents().open2000(doc, false, false, false, "hallo", "", false, "hallo", "", WdOpenFormat.wdOpenFormatAuto, false, true); 
-1

在我們的項目中,我們使用Aspose來管理Office文檔,但我們不帶密碼保護的文檔處理,但我想,這個庫處理此類案件?

0

一個很好的出發點是在Apache POI項目,支持Office 97-2003和OOXML(2007-2010)格式。如果你主要有興趣從這些文件中提取文本,你還應該看看有很好代碼的Tika項目,比如OfficeParser.java

你會想在你的已知密碼中替換第220行的已知密碼parse()方法: - (!)

if (!d.verifyPassword(Decryptor.DEFAULT_PASSWORD)) { 
throw new TikaException("Unable to process: document is encrypted"); 
} 

默認密碼設置爲大多無用密碼「VelvetSweatshop」

+3

VelvetSweatshop不只是一個好奇的字符串,在這種情況下 - 這是默認的Excel未設置密碼時使用密碼,但工作簿處於「受保護」狀態... – Stobor 2010-09-30 22:48:34

相關問題