用POI工具进行导出Excel表格时出现的问题

java.lang.IllegalArgumentException: Maximum number of fonts was exceeded

 

出错原因:我们在导出Excel表格时会给Excel生成字体:

       HSSFFont font = workbook.createFont();

而这个font字体我们如果在数据循环尤其是记录条数比较多上万的时候写入时用就容易出现这种错误:

(错误例子:)

              if(textValue!=null){

                    Pattern p = Pattern.compile("^\\d+(\\.\\d+)?$");  

                    Matcher matcher = p.matcher(textValue);

                    if(matcher.matches()){

                       //是数字当作double处理

                       cell.setCellValue(Double.parseDouble(textValue));

                    }else{

                       HSSFRichTextString richString = new HSSFRichTextString(textValue);

                       HSSFFont font3 = workbook.createFont();

                       font3.setColor(HSSFColor.BLUE.index);

                       richString.applyFont(font3);

                       cell.setCellValue(richString);

                    }

                 }

解决办法:把样式,字体(红色部分)的定义全部放在外面,在循环里面这要调用它就可以了

=======================================================================================

 

http://download.csdn.net/detail/nina_nn/4509365

这里面有我用jsp,poi,jxl三个工具做出的导出项目,可以下载(3分)


 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值