2014-08-27 100 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