如何使用ApachePOI在Android上读取.docx

如何使用ApachePOI在Android上读取.docx,android,Android,我在assets文件夹中有.docx文件,并使用这部分代码来读取它 AssetManager am = context.getAssets(); InputStream is; is = (InputStream) am.open("amaretti.docx"); XWPFDocument hdoc=new XWPFDocument(OPCPackage.open(is)); 这个罐子是: poi.jar poi-ooxml.jar 但显示了一个错误:

我在assets文件夹中有.docx文件,并使用这部分代码来读取它

  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或类丢失了

任何建议都是有用的


提前谢谢

你少了一些罐子。为了使用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打开,从而解决了该问题。

谢谢您的回答,您确认了我的意见,非常感谢。我阅读了.doc文档,但我担心如果我在远程服务器上转换文件,我会丢失文档的结构,甚至丢失一些数据。我将尝试删除.jar中的所有类我不需要它…我希望它能工作,再次感谢…嗨,米基,你能在Android中共享read.doc和.docx,xls文件的代码吗。我需要紧急消息你能用ApachePOI发布android中读取doc文件的全部演示源代码吗..嗨,你能在android中共享read.docx文件的代码吗?