现象:报表页面端展现正常,点击导出excel,选择完是否分页后页面没有反应,后台润乾日志中错误信息:

runqianReportLogger : [ERROR]  - Error:

at com.runqian.report4.view.excel.ExcelReport.createWorkbook(ExcelReport.java:474) 

at com.runqian.report4.view.excel.ExcelReportServlet.service(ExcelReportServlet.java:94) 

at com.runqian.report4.view.ReportServlet.service(Unknown Source:1070) 

at javax.servlet.http.HttpServlet.service(HttpServlet.java:856) 

at com.ibm.ws.webcontainer.servlet.ServletWrapper.service(ServletWrapper.java:989) 

at com.ibm.ws.webcontainer.servlet.ServletWrapper.service(ServletWrapper.java:930)

查看web服务器系统日志,看到错误信息:

java.lang.NullPointerException

at java.awt.EventQueue.isDispatchThread(EventQueue.java:749)

at javax.swing.SwingUtilities.isEventDispatchThread(SwingUtilities.java:1302)

at javax.swing.text.StyleContext.reclaim(StyleContext.java:454)

at javax.swing.text.StyleContext.addAttribute(StyleContext.java:311)

at javax.swing.text.StyleContext$NamedStyle.addAttribute(StyleContext.java:1503)

at javax.swing.text.StyleContext$NamedStyle.setName(StyleContext.java:1313)

at javax.swing.text.StyleContext$NamedStyle.<init>(StyleContext.java:1261)

at javax.swing.text.StyleContext.addStyle(StyleContext.java:120)

at javax.swing.text.StyleContext.<init>(StyleContext.java:100)

at javax.swing.text.StyleContext.getDefaultStyleContext(StyleContext.java:88)

at javax.swing.text.AbstractDocument.<init>(AbstractDocument.java:126)

从错误中可以看到和图形环境有关系,但是导出excel时一般情况下不会用到图形环境,再导出系统中的其他报表,发现有的报表能够正常导出。

查看报表中的区别,发现导出异常的报表中用到了html单元格,而润乾转换该单元格时是将html单元格转换成图片形式导出到excel里,这样就涉及到了图形环境问题。

解决办法:

解决图形环境问题,但是现在系统比较稳定不想再做系统上的操作,并且图形环境问题解决起来有一定技术含量。

润乾基于该问题更新了产品,增加了个系统参数,可通过该参数设定导出excel时遇到html单元格,将html单元格转换成文本形式导出。

解决步骤:

1:更新report4包

2“设置参数<%System.setProperty(“runqianReport.excel.html”,”com.runqian.report4.view.excel.HtmlExportImpl1″);%>

将该行代码写到展现报表的jsp中即可。

html单元格导出excel图形环境问题的更多相关文章

  1. POI导入具有合并了单元格的Excel

    POI进行单行单行地导入的数据在网上有许多的文章,但是要导入一个具有合并单元格的excel貌似比较难找.刚好最近完成了这样的一个需求,要求导入具有合并单元格的excel: /** * 读取excel数 ...

  2. java导出标题多行且合并单元格的EXCEL

    场景:项目中遇到有需要导出Excel的需求,并且是多行标题且有合并单元格的,参考网上的文章,加上自己的理解,封装成了可自由扩展的导出工具 先上效果,再贴代码: 调用工具类进行导出: public st ...

  3. 【记录】解析具有合并单元格的Excel

    最近公司让做各种数据表格的导入导出,就涉及到电子表格的解析,做了这么多天总结一下心得. 工具:NOPI 语言:C# 目的:因为涉及到导入到数据库,具有合并单元格的多行必然要拆分,而NPOI自动解析的时 ...

  4. 【开发者笔记】解析具有合并单元格的Excel

    最近公司让做各种数据表格的导入导出,就涉及到电子表格的解析,做了这么多天总结一下心得. 工具:NOPI 语言:C# 目的:因为涉及到导入到数据库,具有合并单元格的多行必然要拆分,而NPOI自动解析的时 ...

  5. 将多个单元格内容连接到一个单元格中(EXCEL)

    连接符号:& 如下图,我们要将表格中每名员工的姓名.入职时间以及年龄放入到同一个单元格中,形成以“-”连接的形式. 这时我们要用到Excel中的连接符“&”,也就是在按下Shift+数 ...

  6. python-利用xlrd模块中读取有合并单元格的excel数据

    前言 对于excel中有合并单元格的情况,合并的单元格只能取到第一个单元格的值,合并的单元格后面的单元格内容的值为空,针对这个情况,写了下面一段代码实现, 对单元格进行判断,如果是传入的索引是合并单元 ...

  7. Java Controller下兼容xls和xlsx且可识别合并单元格的excel导入功能

    1.工具类,读取单元格数据的时候,如果当前单元格是合并单元格,会自动读取合并单元格的值 package com.shjh.core.util; import java.io.IOException; ...

  8. (二)数据源处理3-python处理包含合并单元格的excel

    分析:

  9. 报表导出excel方式介绍

     报表导出excel提供了四种方式,在单元格属性"其他/导出excel方式"可以选择,如下图 一是导出缺省值:报表中的单元格包含两个值,一个真实值一个显示值,但是在excel中 ...

随机推荐

  1. 【Java并发编程】:深入Java内存模型——happen-before规则及其对DCL的分析

    happen—before规则介绍 Java语言中有一个“先行发生”(happen—before)的规则,它是Java内存模型中定义的两项操作之间的偏序关系,如果操作A先行发生于操作B,其意思就是说, ...

  2. LogCat里的错误提示 FATAL EXCEPTION: main

    程序一运行闪退. 原因为包冲突,将冲突的包删除即可.

  3. Pl/SQl 安装和配置Oracle 数据库连接

    在进行企业开发时,数据库(oracle)一般在我们本地安装的:另外,oracle数据库比较大,在本地安装,会拖慢电脑的速度.我们可以通过oracle客户端,远程连接数据库.下面介绍自己的安装方式 1. ...

  4. Picasso处理同一url,但资源变了的情况

    问题:上传头像成功后,头像的url没变,加载头像时还是从缓存中根据url加载以前的图片. 这个问题,很多人遇到过.也受到很多同行的启发. 图片url不变,感觉不是很合理,这样会把缓存搞乱. 但是,作为 ...

  5. Delphi基础语法

    1.LowerCase(const s:string):string.UpperCase(const s:string):string 2.CompareStr(const s1,s2:string) ...

  6. 数据库--oracle安装配置(本地安装的步骤及各种问题解决方案)

    oracle版本:Oracle 11g 本地电脑配置:安装内存8G 64为操作系统win8.1 下载Oracle 11g压缩包: 1 网址http://www.oracle.com/technetwo ...

  7. LogStash启动报错:<Redis::CommandError: ERR unknown command 'script'>与batch_count 的 配置

    环境条件: 系统版本:centos 6.8 logstash版本:6.3.2 redis版本:2.4 logstash  input配置: input { redis { host => &qu ...

  8. Nodejs学习笔记(四)—与MySQL交互(felixge/node-mysql)

    简介和安装 Node.js与MySQL交互操作有很多库,具体可以在 https://www.npmjs.org/search?q=mysql  查看. 我选择了felixge/node-mysql,用 ...

  9. ibatis(sqlmap)中 #与$的使用区别

    在sqlmap文件中不使用“#VALUE#”来原样(参数对应什么类型,就当什么类型,比如拼凑的内容为string则自动加上了‘’)读取,而是$VALUE$方式来读取,即不加任何的东西,比如单引号啥的, ...

  10. 阿里巴巴Java开发手册(详尽版)-个人未注意到的知识点(转)

    转自 https://blog.csdn.net/u013039395/article/details/86528164 一.编程规约 (一) 命名风格 [强制]代码中的命名只可用英文方式 [强制]类 ...