POI2与POI3差异及解决excel2003和excel2007兼容性研究报告V11.doc

POI2与POI3差异及解决excel2003和excel2007兼容性研究报告V11.doc

  1. 1、本文档共9页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
POI2与POI3差异及解决excel2003和excel2007兼容性研究报告V11

POI2与POI3差异及解决excel2003和excel2007兼容性研究报告 现有问题: 近期发现报表系统(使用EXCEL作报表),在不知情的用户使用了EXCEL2007版本之后,出现了一系列兼容性问题: 用POI2.x操作EXCEL2007文件,会导致后台错误。 org.apache.poi7.poifs.filesystem.OfficeXmlFileException: The supplied data appears to be in the Office 2007+ XML. You are calling the part of POI that deals with OLE2 Office Documents. You need to call a different part of POI to process this data (eg XSSF instead of HSSF) 涉及EXCEL导出的部分,若文件内容是EXCEL2007,却使用.XLS,为后缀名的文件。那么使用EXCEL2003打开会导致乱码现象。 目前新建报表模版,无论客户端安装的是什么版本的OFFICE,后台都是用EXCEL2003(POI2)文件格式创建的。 目前兼容性问题影响范围包含但不限于:模板制作、报表导出、模板版本化、批量折合等所有用到EXCEL后台操作的功能。 问题原因: 报表平台现有系统在处理Excelapache的POI,但是poi2.x是和jdk1.4兼容的,poi2.x只能处理excel2003以前的老版本excel文件,客户机器上安装的往往是新版的office2007,要处理excel2007就必须使用poi3.5以上的版本,poi3.5以上的版本jdk1.5版及以上excel2007的处理。 POI2.x与POI3.x的区别: 什么是POI Apache POI是Apache基金会的开放源码函式库,POI提供API给Java程式对Microsoft Office格式档案读和写的功能。如下:poi-3.8-beta2jar poi-examples-3.8-beta2jar poi-excelant-3.8-beta2jar poi-ooxml-3.8-beta2jar (Office Open XML) poi-ooxml-schemas-3.8-beta2jar poi-scratchpad-3.8-beta2jar 另需要一些配套包的支持 dom4j-1.6.1.jar stax-api-1.0.1.jar xmlbeans-2.3.0.jar (必须使用2.3或以上的版本) commons-logging-1.1.jar junit-3.8.1.jar log4j-1.2.13.jar POI3.8的具体API及实现方法不在本文详述。 POI结构及版本区别: 首先,相对于POI2.X及以下版本,POI3.X支持较高版本的Office操作,在本文中关注的是能够对EXCEL2007进行操作,并可兼容操作EXCEL2003。 部分类图如下: (图1) 如上图,POI2.x的结构只有类图中左半部分,POI3.x新增了以XSSF前缀的EXCEL文件操作对象,用于对OOM格式的EXCEL操作。 POI3完整具体结构和作用如下:   结构:   HSSF - 提供读写Microsoft Excel格式档案的功能。   XSSF - 提供读写Microsoft Excel OOXML格式档案的功能。   HWPF - 提供读写Microsoft Word格式档案的功能。   HSLF - 提供读写Microsoft PowerPoint格式档案的功能。 HDGF - 提供读写Microsoft Visio格式档案的功能。 excel2007文件格式与之前版本不同,之前版本采用的是微软自己的存储格式。07版内容的存储采用XML格式 public static Workbook createCommonWorkbook(InputStream inp) throws IOException, InvalidFormatException { // 首先判断流是否支持mark和reset方法,最后两个if分支中的方法才能支持 if (!inp.markSupported()) { // 还原流 inp = new PushbackInputStream(inp, 8); } // EXCEL2003使用的是微软的文件系统 if (POIFSFileSys

文档评论(0)

haihang2017 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档