java关于POI的使用问题

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java关于POI的使用问题相关的知识,希望对你有一定的参考价值。

cell1.setCellValue((String)list.get(rowsum);

这句话怎么会报错

改成cell1.setCellValue("Hello");就不会报错了

参考技术A 是运行错误还是编译错误?
编译错误的话,是缺少括号造成
运行错误的话,贴上错误信息吧追问

运行错误,编译没有问题,奇怪的是居然没有报错==,这句话有返回值么,出错是返回false?

追答

这个是没有返回值的。
没有报错的话,那你怎么知道有错误?

参考技术B 把你的报错日志发出来,根据错误日志才能锁定你的问题原因。我想一定是你在取list中数据时出的问题,可能下标越界?可能空指针转换String?不好说的,所以你要发出你的日志追问

[F1=, C1=上年部门结余, F1=, C1= 财政拨款(补助)结余, F1=, C1= 其中:基本支出结余, F1=, C1= 项目支出结余, F1=, C1= 非税收入结余, F1=, C1= 政府性基金结余]

这个是list,我怎么感觉不对劲呢,每个元素里面怎么还有逗号?

追答

你这个List里存的是什么?应该不是字符串吧。这是你强制转换成字符串的结果。
首先我觉得你导出EXCEL,你肯定知道你想要的数据,那么你就要把你想要的数据查出来,而查处来的这个结果List的格式你肯定是知道的,遍历这个List通过循环来将数据放到Poi的对象中,进行导出即可!至于你这个list中为什么是这样格式的,你应该是最清楚的,呵呵!

追问

java.lang.ClassCastException: java.util.HashMap cannot be cast to java.lang.String

报的这个错。。。。这个list存放的是HashMap?

我只想取 上年部门结余
财政拨款(补助)结余
基本支出结余。。。。。。

该怎么办呀

追答

你可以定义一个对象,这个对象里包含你想要取的值,然后从数据库查出来数据,封装到这个对象中,把对象放入List,然后导出EXCEL时,将List遍历一下,就可以了。这个过程很简单。

参考技术C 缺一个右括号追问

晕,是我搞错了,我程序里括号添加了的

追答

这样的话就需要贴错误信息了,没有上下文只看一句话,就只能找找简单语法错误

追问

java.lang.ClassCastException: java.util.HashMap cannot be cast to java.lang.String

报的这个错。。。。这个list存放的是HashMap?

我只想取 上年部门结余
财政拨款(补助)结余
基本支出结余。。。。。。

该怎么办呀

追答

list应该是用的哈希表存储的数据
haspMap是由Key跟Value组成的
如果要从hashMap里取数据
Key和Value都取出来可以这么做试试

cell1.setCellValue(list.get(rowsum).entrySet().iterator().next());

获取哈希表集合,取其游标,指向下一条记录(要确定数据不为空啊,不然会报错),下面这么写应该会清楚些
HashMap hm=list.get(rowsum);
Set content = hm.entrySet();
Iterator ite = content.iterator();
if(ite.hasNext())
cell1.setCellValue(ite.next());

追问

你这样好像是把list里的hashmap取出来又放进了set中,cell1.setCellValue(ite.next());这句话还是会出错啊,ite.next()不是一个string对象。。。

追答

嗯,返回值是Object类型,后面加个.toString()就可以显示内容了

以上是关于java关于POI的使用问题的主要内容,如果未能解决你的问题,请参考以下文章

关于java使用POI导出ppt ,其中表格setText 失败问题

java 关于poi读取excel颜色

关于Java 的 poi jar包

关于 java poi 导出excel时 导出多个sheet的问题

关于 java poi 导出excel时 导出多个sheet的问题

关于poi处理日期的问题