excel导入不定行填报表时,系统会根据列标题自动完成数据映射,支持纵向动态扩展;横向扩展则依赖行标题进行识别。只要excel中列标题与报表模板中的字段名称完全一致,即便列顺序存在差异,系统仍可准确导入对应数据;若标题不匹配,则该列内容将被置为空值。
1、 准备标准模板
2、 打开路径为 %FR_HOME%WebReport\WEB-INF\reportlets\doc\SpecialSubject\ExcelImport\ExcelImport_1.cpt 的报表文件,并按规范执行调整:首先清除左侧及底部冗余的空白行,使表格结构更加精简紧凑;将原“产品名称”列标题统一修改为“产品”,“类别”列标题更新为“类别ID”,以明确区分于Excel源数据中的字段命名;接着交换“类别”与“供应商”两列的位置,优化整体数据布局逻辑;最后为表格内每个单元格添加文本控件,全部设置为文本类型,便于用户后续填写与交互操作,显著提升报表的实用性与易用性。

3、 配置报表填报属性
4、 在填报属性设置中,调整列与数据库字段的映射关系,仅需将“类别ID”字段对应的表达式修改为 map(C2, ds2, 2, 1) 即可完成配置。
5、 相关配置文件已准备就绪
6、 进入 %FR_HOME%WebReport\WEB-INF\resources 目录,检查是否存在 customconfig.xml 文件。如未找到,可将同目录下的 config.xml 复制一份,并重命名为 customconfig.xml,确保文件存放路径正确、命名无误,以便系统能正常加载并读取自定义配置。

7、 编辑配置文件内容
8、 打开 customconfig.xml 文件,在指定位置新增一行配置代码:

9、 查看预览效果
10、 点击“填报预览”按钮后,在浏览器工具栏中选择“导入Excel”功能,上传 excelimport.xls 文件,即可看到如下所示的实际导入效果。

11、 标题无关性说明
12、 FineReport在导入Excel时,默认采用标题优先匹配机制。当匹配到两个或更多相同名称的标题时,系统将自动跳过位置匹配逻辑。若需在标题匹配成功的同时仍启用位置匹配方式(例如应对多组同名字段场景),则必须手动调整系统配置。因为在默认模式下,只要标题匹配成立,位置匹配即被忽略,无法满足按物理位置导入的业务需求。
13、 可通过修改配置文件关闭标题匹配,强制启用位置匹配策略。
14、 配置文件已准备完成
15、 进入 %FR_HOME%WebReport\WEB-INF\resources 目录(注意原文中“esources”为笔误,应为“resources”),查找 customconfig.xml 文件。若该文件不存在,可从当前目录复制 config.xml 并重命名为 customconfig.xml,保存至该路径下,完成后即可进入下一步配置环节。

16、 修改配置参数
17、 打开 customconfig.xml 文件,在指定位置插入如下配置代码:
18、 完成设置后重启应用服务器,再次执行Excel导入操作时,系统将依据单元格位置进行自动匹配。


















