excel的解析,请提供思路 需要根据不同的模板就行解析
不同用户使用的excel模板不同
用户a模板格式:
姓名 牛逼 性别 男 班级 java网站开发班
课程 分数
jsp 80
js 70
css 75
.................//课程行数不定
用户b模板格式:
班级 作家培训班 姓名 牛叉 性别 女
课程 分数
古文 90
现代文 70
诗歌 72
.................//课程行数不定
注意两者之间的区别,不同模板中信息出现的位置不一样(
如 班级信息 a模板在<cell>6</cell><row>0</row>
b模板在<cell>2</cell><row>0</row>
),同一用户的模板是一样的,但是课程信息会不一样(用户a有会上传n个excel,第一个excel课程信息有2条,第二个excel有4条。。。)
我现在的思路:
针对不同的用户编写不同的配置文件,如:
<usera_info>
<field name="shipper">
<cell>1</cell>
<row>3</row>
</field>
<field name="shippingNo">
<cell>8</cell>
<row>3</row>
</field>
<field name="shipperEmail">
<cell>2</cell>
<row>5</row>
</field>
<field name="shipperTel">
<cell>1</cell>
<row>6</row>
</field>
<field name="shipperFax">
<cell>3</cell>
<row>6</row>
</field>
</usera_info>
根据配置文件读取某一信息所在位置
但是这只能解析出基本信息(姓名性别等),课程信息(因课程信息同一用户的条数都不一样,起始行知道,如何根据行数的变化而配置呢)不知道怎么解析了
希望大家提供建议。
------解决方案--------------------
1、为什么模板不统一列? 作为一个收集信息的系统,你应该定好模板,然后提供给用户下载,让他们按照你的模板要求来进行填写。
2、关于课程解析,你不需要知道具体行数啊,你只需要从第几行开始解析,在POI里面,有一个maxRowNum()可以拿到最大行数。 你从课程起始行,一直读到最后一行即可,注意中间不能有空行。
关于EXCEL解析的问题,最好的解决办法仍是在模板上下功夫,定制一个符合所有人需求的模板乃解决问题之上上策。。 关于用户那边,你可以去沟通,让他们采用你的模板。。
------解决方案--------------------擦。一刷新一楼被删除了?
------解决方案--------------------