行式报表实现后台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;
执行效果
数据库
代码原因是:行式报表的填报值是放在行格中,这里是将填报值赋给每个单元格。更新属性中就正常取到填报值了。