java 使用XmlPullParser解析Excel2007

首先说下解析Excel2007的经历:本人是Android开发的,本想着用poi框架会比较好的解决问题,但是不太建议使用,主要有以下问题(纯属个人看法):

1、poi框架太大,导入两个包就超过了64K方法数。如果只解析2003还好,只需要一个包,但是业务上没谁只解析一个包,并且还是已经过时的Excel2003格式吧,

2、解析Excel2007的速度较慢,第一次加载的时间我大概计算了下(测试表只有5行5列数据),大概需要3、4秒才能解析出来,之后的速度会较快。如果业务需求能接受的可以使用。

以上测试在Android手机端进行!

 

将Excel2007即后缀为.xlsx的Excel表格,通过压缩工具打开,会有以下几个文件:

要解析Excel,主要是解析xl目录下的文件,如下图:

worksheets目录:所有创建的表保存的目录,命名为sheet1、2、3.xml

sharedStrings.xml:excel会遍历所有工作表,获取所有字符串数据并保存在这个xml文件中

workbook.xml:在此处可以获取表名,如未修改,默认为sheet1、2、3,如修改了则是自己修改的内容,但是上述worksheets目录中的命名不变(即我把sheet1改成了工作表1,workbook.xml里会对应修改,但是worksheets中还是显示sheet1

JAVA代码:

创建以下几个集合:

1、加载Excel:首先通过Intent获取到文件的路径,根据路径进行压缩,并根据其中的xl/sharedStrings.xml路径进行数据的获取并储存

2、获取Excel的所有工作表名:操作路径为xl/workbook.xml,每个表名标签以sheet开头,标签内有三个元素,第一个元素为表名

3、设置工作表:根据获取到的表名,可以选择要操作的工作表(前面说到worksheet目录下的工作表名不变,因此传入时还是为sheet1、2、3即可)

下图中画红框的部分是:前面提到,有个sharedStrings.xml中是装所有表的String类型的数据,如果获取到列数据中标签元素等于2,并且第二项数据为s,则他的v标签中内容是装载sharedStrings.xml数据集合中的下标,根据这个下标,可以在集合中获取到对应的字符串数据

储存数据的bean类:

4、获取某一行数据:在第3步中已经获取到对应工作表的所有数据,并且根据自定义的JavaBean类存储,因此要获得某一行数据(即列变行不变):

5、获取某一列数据:原理跟第4步想同(行变列不变):

6、根据指定行列获取数据:

 

总结:以上介绍了Java使用XmlPullParser解析Excel2007,在一些理解上纯属个人看法。如有其它看法,敬请指出,共同进步!

  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值