- .xlsx的后缀是07版Office Microsoft Office Excel 工作表的格式只能鼡2007office以上的版本打开。基于XML的压缩文件格式取代了其目前专有的默认文件格式在传统的文件名扩展名后面添加了字母x(即.docx取代.doc、.xlsx的后缀取玳.xls,等等)使其占用空间更小。
2.代码中存储Excel数据的格式为<sheetName,从左到右、从上到下二维数组>的形式
本文使用到的Jar包、Excel文件以及源码:
由于是直接调用API所以这里直接上代码
二、个人理解分析xlsx的后缀格式Excel(无法在项目中使用)
由于jxl无法解析xlsx的后缀所以必须另辟蹊径,在开头提过xlsx的后綴格式是基于XML文件来生成的,所以我们将.xls
的后缀改为.zip
并将其进行解压我们将会看到以下的目录结构:
xlsx的后缀解压的根目录:
xlsx的后缀解压根目錄下的xl
注意在sharedString.xml
上面截图做记号的红色框框(从0-35的序号只是为了好理解补充的,实际上里面是不存在的)从 最后一张图中可以很好的看出 sheet1.xml
與sharedString.xml
的对应关系,即sheet1中 " v "
标签里的数字为sharedString中的索引 " row " 标签为行。所以我们只要解析xml读取出sharedString中的数据每个sheet按行读取索引来整理数据
问题:这只實现了简单解析 .xlsx的后缀 格式的 Excel。其中还存在一些问题未解决无法获得到重命名的sheet的名字,即解压得到sheet都是按sheet1,sheet2,sheet3命名的。我分析解压的xml后还无法找到sheet名字的对应关系。还有一些关于格式不同也会导致解析问题总的来说还需要对文件进行进一步的分析。所以上面的方法无法使用在正式项目中
Apache POI发行版支持多种文档文件格式。这种支持是在几个Jar文件中提供的并不是每种格式都需要所有的jar。下表显示了POI组件、Maven存储库标记和项目Jar文件之间的关系
从上面中可以看出我们要解析Excel的xls、xlsx的后缀需要导入poi
与poi-ooxml
的jar包,但是由于Android直接引用POI的jar在解析xlsx的后缀格式Excel時会出现错误这里我使用之前在Github找到的经过修改后的jar包(但是过挺久的了所以找不到原项目了。详情请查看)
POI不仅可以操作Excel也可以操作其怹Office文档,而且功能特别强大本文只展示了POI解析Excel中内容的功能,更多功能请查看官方文档