1. 概述编辑
Excel 双向导入是指标题行列是从单元格扩展得到的,并且用于导入数据的单元格也是可扩展的,如下图所示效果,标题字段通过横向扩展得到,导入数据的单元格为纵向扩展,导入不定行数据:
Excel 双向导入模板在 Web 端填报预览打开之后,其展示效果与固定标题行导入不定行是一样的,那么双向导入的逻辑仍然是首先根据标题匹配,如果标题匹配不上或者只有一个可以匹配上或者设置了不执行根据标题匹配,则执行根据位置匹配。
2. 示例编辑
下面我们用已知的 Excel 表 excelimport.xls ,和 FRDemo 中的「产品」表作为示例。
2.1 模板准备
新建普通报表,添加
,点击「表设计」仅增加一列数据,将列名改为「标题行」,点击确定,再点击「插入行」将 Excel 中对应的标题名称填入,步骤如下图所示:将内置数据集的标题行数据列拖拽到 A2 单元格中,设置 单元格属性>扩展方向 为「横向扩展」,给 A3 单元格添加「文本控件」,并将 A3 单元格设置为「纵向扩展」,如下图所示:
2.2 设置报表填报属性
1)点击「模板>报表填报属性」,添加一个「内置 SQL」提交,选择「智能提交」类型,选择 FRDemo 中的「产品」表。点击智能添加字段,将除「单位数量」之外的所有字段添加进来,勾选「产品ID」作为主键。
2)因为本例单元格是由横向扩展和纵向扩展得到的,所以数据列对应的值需要使用「绝对层次坐标」获取,例如产品 ID 列的值为公式 A3[;A2:1],即返回 A2 行的第一个数值对应的 A3 单元格的数值。详情可参见:层次坐标 。
具体公式和步骤如下所示:
列 | 值 |
---|---|
产品ID | A3[;A2:1] |
产品名称 | A3[;A2:2] |
供应商ID | A3[;A2:3] |
类别ID | A3[;A2:4] |
成本价 | A3[;A2:5] |
单价 | A3[;A2:6] |
库存量 | A3[;A2:7] |
订购量 | A3[;A2:8] |
再订购量 | A3[;A2:9] |
中止 | A3[;A2:10] |
2.3 工具栏设置
点击「模板>模板 Web 属性>填报页面设置」,选择「为该模板单独设置」,勾选
,先清空工具栏,然后在按钮面板中双击「提交」按钮和「导入 Excel」 按钮,将这两个按钮添加到顶部工具栏中,如下图所示:2.4 Excel 导入配置
点击「模板> Excel 导入配置」,默认单元格匹配逻辑为「先按标题匹配,不通过再按单元格位置匹配」,默认勾选「双向扩展格导入」。详情可参见:Excel导入逻辑设置插件 。
2.5 效果预览
为了预览效果比对,本地先使用 Navicat Premium 清空了产品表。并且再报表中添加了一个数据库查询 ds1 预览数据,SQL 语句为:SELECT * FROM 产品 。
保存报表,点击「填报预览」,效果如下图所示:
3. 模板下载编辑
已完成模板可参见:%FR_HOME%\webapps\webroot\WEB-INF\reportlets\doc\SpecialSubject\ExcelImport\Excel双向导入.cpt。
点击下载模板:Excel双向导入.cpt