2014-08-27 101 views
1

我的資產文件夾.docx文件,並使用這部分代碼來讀它如何與Apache POI讀取.DOCX在Android

AssetManager am = context.getAssets(); 

    InputStream is; 

    is = (InputStream) am.open("amaretti.docx"); 

    XWPFDocument hdoc=new XWPFDocument(OPCPackage.open(is)); 
這個

和罐子:

poi.jar 
    poi-ooxml.jar 

但顯示我的錯誤:

08-27 18:16:31.660: I/dalvikvm(23221): Could not find method   org.openxmlformats.schemas.wordprocessingml.x2006.main.CTDocument1$Factory.newInstance, referenced from method org.apache.poi.xwpf.usermodel.XWPFDocument.onDocumentCreate 

我想一些jar或類都丟失。

任何建議都會有用。

在此先感謝

+0

嗨,你可以共享代碼讀取.docx文件在Android? – 2017-06-16 11:08:53

回答

0

你錯過了一些罐子。爲了使用POI來讀取Word 2007個的文件,你還需要以下庫(他們都可以在您從Apache官方網站POI下載存檔):

POI-OOXML-模式(一個你」重新獲取有關錯誤)

的xmlbeans

的dom4j

STAX

根據官方網站,dom4j和stax不再需要,但我發現我有問題時,我沒有添加它們。

不幸的是,你一定會發現,添加所有這些庫將導致Dalvik dex錯誤(一個Android classes.dex可以容納多達64k的方法聲明,您將跨越)。對此的「官方」解釋是,POI根本不是爲Android設計的。不幸的是,我一直無法找到一個簡單,易於管理的解決方案(已經有嘗試,部分成功,將POI移植到Android上,但它們對我來說過於笨拙)。我通過將Word 2007文件發送到遠程服務器來解決該問題,將它們轉換爲舊格式並返回到POI打開的移動設備。

+0

謝謝你的回答,你確認我的意見,非常感謝。我讀了.doc文件,但是如果我在遠程服務器上轉換文件,我恐怕會丟失文件結構,甚至丟失一些數據。我會嘗試刪除.jar中的所有類,我不需要它....我希望它的作品,再次感謝... – Mikky 2014-08-28 08:02:27

+0

嗨Mikky你可以共享代碼讀取.doc和.docx,在Android的XLS文件。我需要緊急 – user 2015-04-22 18:09:03

+0

你可以發佈整個演示源代碼閱讀文檔filee在android使用apache poi .. – 2015-12-17 06:50:26