Chapter 15 内置工作流SQLReport

sqlreport是girlfriend内置的一个示范性工作流,虽然是示范,但其实跑数据也挺好用的,它可以读取一个json格式的任务描述文件,并将任意多条SQL导出为Excel表格,并把表格以附件或者邮件正文的形式发送给目标用户。

sqlreport的源码位于girlfriend.workflow.builtin.sqlreport模块。因为该模块已被注册到名称为girlfriend.workflow的entry_point,所以可以直接这样运行:

gf_workflow -m :sqlreport -t task.json

sqlreport只接受一个参数,该参数指定了任务描述文件。

任务描述文件说明

# 该单元为SQL任务,db为连接的数据库,sql为要执行的SQL语句,table为表名称,同时# 会用作Excel Sheet名称
# titles 为表格各字段的名称,必须按照顺序
{
  "db": "user",
  "sql": "select id, email, cat_num from user",
  "table": "注册用户",
  "titles": ["编号", "姓名", "宠物猫数目"]
}
{
  "db": "product",
  "sql": "select id, name, sell_num from product",
  "table": "商品销售详情",
  "titles": ["编号", "姓名", "销售数目"]
}

# 该单元描述邮件发送详情,可选,server为要使用的smtp服务器,sender为发件人,receivers为收件人
# 当receivers为逗号隔开的字符串时,会一并发送给所有的收件人,方便统一沟通,当receivers为数组时,会单独发给每个人
# content为html形式的邮件正文,table为要在正文显示的html表格
{
  "server": "test",
  "sender": "[email protected]",
  "receivers": "[email protected]",
  "subject": "数据邮件",
  "content": "<h1>数据报表</h1>",
  "table": [0, 1],
}

# 该单元描述导出Excel文件,sheets为包含的数据库表,从0开始计数
{
  "workbook": "test.xlsx",
  "sheets": [0, 1]
}

results matching ""

    No results matching ""