0 0

jxls做报表,数据库查询错误.20

我用源代码给的例子
在Excel中写<jx:forEach items="${rm.exec('SELECT d.name depname, e.name empname, payment, bonus FROM employee e, department d where d.id = e.depid order by age desc')}" var="employee">
${employee.depname}
</jx:forEach>
后台会出现找不到name,不能执行上述的sql语句.但如果简化
<jx:forEach items="${rm.exec('SELECT  e.name , payment, bonus FROM employee e, department d where d.id = e.depid order by age desc')}" var="employee">
${employee.name}
</jx:forEach>
就是不用别名,就正确了,这是为什么.因为我要empolyee表的name和department的name,没有别名,不知道怎么做.况且他给的例子都有别名的.


注:别名之前,不管用不用as都不行
Exception in thread "main" java.lang.RuntimeException: Can't parse an expression rm.exec('SELECT d.name depname, e.name empname, payment, bonus FROM employee e, department d where d.id = e.depid order by age desc')
at net.sf.jxls.tag.ForEachTag.parseItemsProperty(ForEachTag.java:142)
at net.sf.jxls.tag.ForEachTag.init(ForEachTag.java:104)
at net.sf.jxls.parser.CellParser.parseTag(CellParser.java:294)
at net.sf.jxls.parser.CellParser.parseCellValue(CellParser.java:196)
at net.sf.jxls.parser.CellParser.parseCell(CellParser.java:57)
at net.sf.jxls.transformer.SheetTransformer.parseCells(SheetTransformer.java:193)
at net.sf.jxls.transformer.SheetTransformer.parseRow(SheetTransformer.java:263)
at net.sf.jxls.transformer.SheetTransformer.transformSheet(SheetTransformer.java:82)
at net.sf.jxls.transformer.XLSTransformer.transformWorkbook(XLSTransformer.java:238)
at net.sf.jxls.transformer.XLSTransformer.transformXLS(XLSTransformer.java:217)
at net.sf.jxls.transformer.XLSTransformer.transformXLS(XLSTransformer.java:196)
at net.sf.jxls.sample.ReportingSample.main(ReportingSample.java:38)
Caused by: java.sql.SQLException: Column 'name' not found.
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1055)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:956)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:926)
at com.mysql.jdbc.ResultSetImpl.findColumn(ResultSetImpl.java:1093)
at com.mysql.jdbc.ResultSetImpl.getObject(ResultSetImpl.java:4951)
at org.apache.commons.beanutils.JDBCDynaClass.getObject(JDBCDynaClass.java:271)
at org.apache.commons.beanutils.RowSetDynaClass.copy(RowSetDynaClass.java:232)
at org.apache.commons.beanutils.RowSetDynaClass.<init>(RowSetDynaClass.java:187)
at org.apache.commons.beanutils.RowSetDynaClass.<init>(RowSetDynaClass.java:152)
at net.sf.jxls.report.ReportManagerImpl.exec(ReportManagerImpl.java:44)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at org.apache.commons.jexl.util.introspection.UberspectImpl$VelMethodImpl.invoke(UberspectImpl.java:231)
at org.apache.commons.jexl.parser.ASTMethod.execute(ASTMethod.java:104)
at org.apache.commons.jexl.parser.ASTReference.execute(ASTReference.java:82)
at org.apache.commons.jexl.parser.ASTReference.value(ASTReference.java:56)
at org.apache.commons.jexl.parser.ASTReferenceExpression.value(ASTReferenceExpression.java:50)
at org.apache.commons.jexl.ExpressionImpl.evaluate(ExpressionImpl.java:79)
at net.sf.jxls.parser.Expression.evaluate(Expression.java:69)
at net.sf.jxls.tag.ForEachTag.parseItemsProperty(ForEachTag.java:135)
2010年5月31日 22:58

3个答案 按时间排序 按投票排序

0 0

楼主好强大,竟然把这么复杂的问题解决了,以前我用开源报表被代码搞得快崩溃了,后来我就用帆软报表,现在还挺省事的,主要不用写代码了

2015年1月21日 14:20
0 0

最近做项目也遇到了上面的情况,看到楼上的提示后才恍然大悟,所以我就将低版本的链接数据库的架包更换成高版本的,结果问题果然解决。我用的是mysql数据库,更换成mysql-connector-java.jar架包即可。

2013年3月18日 11:37
0 0

这是beanutil里的一个bug,1.8.3已经修正,ReportManagerImpl.java需要改一下,RowSetDynaClass rsdc = new RowSetDynaClass(rs, true, true); 加上第三个参数,true, useColumnLabel,
use JDBC column labels instead of the JDBC column names

2012年6月03日 12:54

相关推荐

    解决net.sf.jxls1.0.6中getCellType()和org.apache.poi4.1.2报错问题

    解决net.sf.jxls1.0.6中getCellType()和org.apache.poi4.1.2报错问题

    jxls包——jxls-1.0.1.zip

    jXLS的功能是:只使用几行代码就可以建立极端复杂的Excel报表。你所需要实现的大部分工作是建立XLS模板文件,完成所需要的格式,公式和宏等等,使用注释来指示出数据需要填入的位置。接着写几行代码调用jXLS引擎解析...

    使用net.sf.jxls下的jxls-core包进行复杂的Excel导出

    使用net.sf.jxls下的jxls-core包进行复杂的Excel导出

    使用Apache开源POI和jXLS两种API生成报表.pdf

    jXLS可以与Java集合或数据库结果集配合使用,自动将数据填入模板,生成报表。例如,可以使用Java的JDBC API从数据库检索数据,然后传递给jXLS进行填充。 总结,Apache POI适合对Excel进行直接操作,包括读取、写入...

    官方jxls-2.4.1

    **官方jxls-2.4.1** Jxls是一个强大的Java库,用于处理Excel工作簿。它允许开发者使用Java编程语言动态地填充和转换Excel模板,极大地简化了数据到Excel的映射过程。官方发布的jxls-2.4.1是这个库的一个稳定版本,...

    jxls 2.3.0

    例如,可以直接将数据库查询结果导出为Excel报告。 9. **错误处理和调试** - jxls 提供了详细的错误报告,帮助开发者快速定位和解决模板设计中的问题。 10. **版本更新** - jxls 2.3.0 版本相对于早期版本可能...

    jxls-core-1.0.7.jar包,支持poi4.0即以上

    jxls-core-1.0.7.jar包源码,支持jdkl8以及poi4.0以上的版本,原jar包作者的最高版本多年没有维护,通过修改原作者源码,为1.0.7版本支持高版本的poi库如poi4.0.1及以上。

    jxls2.3 官网最新下载

    - **报告生成**:Jxls适用于需要根据数据库或其他数据源生成定制化Excel报告的场合,例如财务报表、销售统计等。 - **数据导入导出**:可以方便地将Java对象转换为Excel格式,用于数据交换或用户界面的数据输入。 ...

    jxls excel导出 中文指导教程.zip

    一.JXLS简介 ,安装,以及标签使用说明 Each数据循环、公式使用、if-else逻辑判断、加载图片、动态表格、数据分组、单元格超链接、SQL模板实现、自定义表达式解析引擎、自定义函数、单元格合并

    jxls-core完美支持poi4.x

    最近项目poi升级,导出excel有异常。通过修改源码,支持poi4.x。已经完美验证。

    excel模板所需jar:commons-jexl-2.1.1.jar 和 jxls-core1.0.3.jar

    总之,`commons-jexl-2.1.1.jar`和`jxls-core1.0.3.jar`这两个库在`jxls`框架中起到了关键作用,它们共同实现了将Java数据对象与Excel模板动态结合,生成定制化报表的功能。对于需要处理大量数据导出的Java项目,...

    关于net.sf.jxls下的jxls-core包与POI 4.1.2版本不兼容的解决

    关于net.sf.jxls下的jxls-core包与POI 4.1.2版本不兼容的解决

    jxls1.0.5报表工具

    **jxls1.0.5报表工具详解** jxls是一个基于Java的库,它扩展了Apache POI库的功能,使得用户能够用简单的Excel模板来创建复杂的动态报告。jxls1.0.5是该工具的一个版本,它提供了一系列增强功能和改进,帮助开发者...

    jxls-2.4-jdk1.7.jar

    兼容jdk1.7-兼容POM3.11及以上版本;如果需要源码,可以查看 https://download.csdn.net/download/iamcuilong/12066123

    jxls poi jxls-2.2.9.zip

    特别是在金融、教育、数据分析等行业,需要频繁生成或处理Excel报表时,jxls能显著提高开发效率。 **总结** jxls-2.2.9.zip这个压缩包中包含的是jxls库的2.2.9版本,它结合Apache POI,为Java开发者提供了一个强大...

    jxls 生成报表开发包

    **jxls:强大的Java报表生成库** 在Java开发中,生成报表是一项常见的需求,而`jxls`就是一款专门用于创建动态Excel报表的开源库。它允许开发者使用标准的Java编程方式来定义复杂的Excel模板,并将数据填充到这些...

    jxls-core-0.9.6.jar

    jxls-core-0.9.6.jar为的是更好的发扬优良的精要的代码!

    jxls1.0.6的jar包.zip

    通过使用模板和数据绑定,可以高效地从Java程序生成复杂的Excel文档,尤其适合大数据量的报表生成场景。虽然这是较老的版本,但对于那些不需要最新特性的项目来说,仍然是一个可靠的解决方案。在实际使用中,开发者...

    jxls-jexcel-1.0.6.jar

    jxls-jexcel-1.0.6.jar java读取excel文件的jarjxls-jexcel-1.0.6.jar

    JXLS将数据库取得的数据根据Excel模板导出

    开发人员只需要编写SQL查询,设置模板字段,然后调用JXLS的相关方法,就能自动生成定制化的Excel报表。这种方式既节省了开发时间,又保证了输出格式的一致性和专业性,是企业级应用中处理大量数据的理想选择。在实际...

Global site tag (gtag.js) - Google Analytics