Excel查询报表制作说明
查询报表制作说明
报表命名说明
报表文件命名建议规则: [机构简称]-[流水号] 例如: JZM-1001
报表组成说明
一个Excel自动报表包括3个文件, Excel模板文件、SQL文件、查询配置文件。
Excel模板文件
即普通的Excel文件, 文件名后缀为.xlsx , 通常由业务部门按业务需求制作。
SQL文件
对应Excel模板的数据库查询SQL语句,通常由开发人员根据Excel模板从数据库运算和查询的脚本。
查询配置文件
用于将SQL文件查询出来的内容,按指定的格式填充到Excel模板里。
例如: 月销售分析报表 由 pub-1001.xlsx 、pub-1001.sql 、pub-1001.query.json组成
报表开发过程
1.Excel文件 建立与配置
Excel模板完成后, 需要在文件-信息里填入 标题、类别、主题信息,
- 标题 用于说明本报表的描述;
- 类别 为报表名称,小易通过它向服务器里提交对应的查询命令;
- 主题为命令的配置文件,如空则默认为类别的名称

2. SQL脚本编写
业务编写略,如需要使用Excel传入参数须使用 {参数名} ,脚本执行的时候会自动替换参数
3. query.json 查询配置
详见以下配置
query.json 说明
{
"org": "myds", // 固定为myds
"ds" : "dw" , // 数据源名称,与服务器dsconfig文件里的id对应
"cmd" : "pub-1001" , //命令名称, 执行对应sql 命令, 与 报表.sql对应
"query_paras":[ // 查询参数
{
"name":"sale_date" //参数名称, 与SQL命令的 {参数名称对应}
, "type" :"DateTime" //参数类型,支持 DateTime | Int | Decimal | String , 其他类型都按String处理
, "val_sheet":"月度销售" //参数值来源的 Sheet名称
, "val_cell":"D2" // 参数值来源的 单元格
}
],
"fill" : [ // 命令查询结果回填Excel的配置
{"id" :1 //回填的序号
, "table":0 //SQL查询结果的第n个表
, "column" :0 //SQL查询结果的第n列
, "row":0 //SQL查询结果的第n行
, "sheet" :"月度销售" // 回填表格的Sheet名
, "method": 0 //回填方法, 0: 删除指定范围内容; 1: 填充单元格; 7: 填充某列-按行; 8: 填充某列-按列; 9: 填充整个表格
, "range":"A4:AA200" // 回填的单元格或范围
}
, {"id" :2 , "table":0 , "column" :0 , "row":0 , "sheet" :"月度销售" , "method": 9 , "range":"A4"}
]
}
ds : 必填 , 数据源名称,与服务器dsconfig文件里的id对应
cmd : 必填 , 命令名称, 执行对应sql 命令, 与 报表.sql对应
query_paras : 选填 ,查询参数,用于将Excel某单元个的值已参数的形式传递给命令执行。 包含4个内容: 将 [val_sheet]表格的[val_cell]单元格的值,作为[name]参数名(类型为[type]),传递给服务端。
fill : 必填 ,将结果集按指定格式更新到Excel
- method = 0 , 清除单元格内容
{"id" :1 , "table":0 , "column" :0 , "row":0 , "sheet" :"月度销售"
, "method": 0 , "range":"A4:AA200"}
表示 将 [月度销售]表格的 单元格区域 [A4:AA200] 的内容清除掉
- method = 9 , 将查询的结果集填充到单元格
{"id" :2 , "table":0 , "column" :0 , "row":0 , "sheet" :"月度销售"
, "method": 9 , "range":"A4"}
表示 将第1个查询结果(从0开始计算) 整表填充到 [月度销售]表格的[A4]单元格,行列自动扩展
- method = 7 , 将查询的结果集填充到单元格
{"id" :2 , "table":0 , "column" :0 , "row":0 , "sheet" :"月度销售"
, "method": 7 , "range":"A4"}
表示 将第1个查询结果(从0开始计算)的第1列的内容 [月度销售]表格的[A4]单元格,行自动向下扩展
- method = 8 , 将查询的结果集填充到单元格
{"id" :2 , "table":0 , "column" :0 , "row":0 , "sheet" :"月度销售"
, "method": 8 , "range":"A4"}
表示 将第1个查询结果(从0开始计算)的第1行的内容 [月度销售]表格的[A4]单元格,列自动向右扩展