行式报表实现后台excel导入数据库(续)

利用行式报表实现后台excel导入数据库(续)

需求背景:

前面已经有文章介绍了利用行式报表实现后台excel导入数据库,这里简单扩展下。

在如下情景下 可能无法达到预期的效果:当更新属性中有 在报填报表单元格进行简单处理后的填报值(这里是后台处理 不会有页面填报 借用下 参数 填值 重现效果)取值为空导致更新没有达到预期效果。

操作步骤

一、首先 重现 保存没有达到预期效果:

1. 报表设置

2. 原始核心代码不变

3 后台效果

数据库没有更新进来

二、代码修改后

核心修改代码:

RowReport rr = ( RowReport ) report.deepClone();

for( int r = 1; r <= rr.getRowCount(); r++ ) {

for( short c = 1; c <= rr.getColCount(); c++ ) {

ExtNCell ncell = ( ExtNCell ) rr.getCell( r, c );

if( ncell != null ) ncell.setInputValue( ncell.getValue() );

}

}

替换 RowReport rr = (RowReport) report;

执行效果

数据库

代码原因是:行式报表的填报值是放在行格中,这里是将填报值赋给每个单元格。更新属性中就正常取到填报值了。