需求是将八个Excel数据合并到一个Excel表当中,这八个Excel数据的表格式相同,所以其实对于数据的读取是一样的。
EasyExcel
easyexcel是阿里巴巴开源的一个处理excel的工具包,同时因为easyescel有中文文档,而且操作简单,所以一开始使用了easyexcel,但是在使用过程中发现,它所提供的api不够全面,无法做到精确定位,精确操作,只能一列一列来读写,而且无法在过程中进行判断什么的。
总的来说,不够灵活,但足够简单。
POI
poi是apache的一个子项目,专门用来处理Excel的,不管怎么说,这个帮大忙了,虽然操作相对于easyexcel来说复杂一点,但是也挺简单的,基本上一小时上手,三小时会用,用一天就已经算比较熟悉了。
处理思路
一开始,我计划用easyexcel全部处理完成,但是不够灵活。
然后我盯上了poi,稍微学了下,一开始想着先把要读的文件读出来到map<name, content>中,然后在把要写的文件读出来它的<name, index>,然后再根据坐标和内容的匹配写进去,但是!一直报空指针错误,怎么样搞都不行。
但是最后我换了中方法解决了。用的是在用outputstream的同时获取excel的信息来做判断,代码如下:
public class RunToThat {
public void sonofbitch() thr