跳至主要內容

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]单元格,列自动向右扩展