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

news/2024/7/21 6:05:39 标签: 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://www.niftyadmin.cn/n/1599055.html

相关文章

supermap java,SuperMap iObjects Java 10i 产品介绍

使用 SuperMap iObjects Java/.NET 10i 产品需要 SuperMap 的授权,即获得许可,下文是关于 SuperMap iObjects Java/.NET 10i 产品许可的一些说明。SuperMap iObjects Java/.NET 10i 产品许可分为两大类:开发许可和运行许可:开发许…

linux 文件加权限

1.给某个目录及目录下所有文件的权限 可以使用 chmod -R 权限值 目录或文件 例如:改变 testdir 及其目录下所有的文件和目录的权限为 777 [rootlivecd /]# chmod -R 777 testdir[rootlivecd /]# man chmod 可以得到:OPTIONS -R, --recursive change fi…

oracle中pkg的游标,Oracle带游标的存储过程在plus中的调用实例

之前在帖子http://www.voidcn.com/article/p-ryleqnfo-ua.html 里回答了一些网友的关于怎么穿件一个返回记录集合的存储过程。想必很多网友已经很明白了,这里就不多讲了,先在这个帖子主要回答百度知道http://zhidao.baidu.com/question/453032020.html?…

linux下通过.sh文件启动java程序

Linux下通过.sh文件启动Java程序: 首先把java程序打成jar包,指定好主类(入口) sh文件如下 #!/bin/sh java -Xbootclasspath/a:log4j.jar:ojdbc.jar: -jar domain.jar 执行: ./run.sh 以下内容为转载: 大…

win8.1上安装linux系统怎么安装,Win8.1 + CentOS7 双系统 U盘安装(超详细教程)

0、准备工作1、宏碁 Aspire 4752G 笔记本2、Win8.1 企业版操作系统3、8G 以上 U 盘4、UltraISO(当然也可以选择其他的U盘制作工具,看个人喜好)5、下载 CentOS 7 的镜像(本人已CentOS-7.0-1406-x86_64-DVD.iso为例)官网:http://www.centos.org/download/ …

基于命令的批量修改文件内容

基于命令的批量修改文件内容 来源: ChinaUnix博客  日期: 2009.07.15 12:06 (共有0条评论)我要评论 Linux下批量替换多个文件中的字符串的简单方法。用sed命令可以批量替换多个文件中的字符串。用sed命令可以批量替换多个文件中的字符串。sed -i "s/原字符串…

linux tcp协议端口,TCP协议图文详解

一.TCP协议简介TCP是TCP/IP体系中非常复杂的一个协议,TCP最主要的特点有:1.TCP是面向连接的运输层协议。应用程序在使用TCP协议之前,必须先建立TCP连接。在传递数据完毕后,必须释放已建立的TCP连接。2.每一条TCP连接只能有两个端点…

Ubuntu 10.04 用Wine完美运行QQ 2009

首先你要安装Wine: 打开一个 Shell(终端),然后来一句: sudo apt-get install wine 。 然后只管一路YES就行。。 第二步:安装 winetricks 。 这是老外为了让我们能够在linux下迫不得已的运行一些“瘟到死…