案例分享:Excel表格的自动化处理和推送
需求:
每月1号从故障处理系统中查询分公司上月的统计数据和故障清单发送给分公司维护部经理。表格的格式如下:
解决方案:
1、设计Excel模板表格,在模板表格中需要填写SQL数据的位置上设置“数据单元格”标记:
2、在EasySQLMAIL中创建信息推送任务,上传Excel模板表格:
3、为附件模板添加第一个SQL语句,用于查询"故障数量":
SQL语句如下:
--查询上月分公司故障统计数据 SELECT 分公司,to_char(发生时间,'yyyymm') AS 月份, COUNT(1) AS 故障数量 FROM t_stat1 WHERE 分公司 = '青阳公司' AND to_char(发生时间,'yyyymm') = to_char(add_months(SYSDATE,-1),'yyyymm') GROUP BY 分公司,to_char(发生时间,'yyyymm')
4、设置SQL字段与Excel模板表格的对应关系:
5、为附件模板创建第二个SQL语,用于查询"处理完成量":
SQL语句如下:
--查询处理完成(处理时间非空)的故障数量 SELECT count(1) as 处理完成量 FROM t_stat1 WHERE 分公司 = '青阳公司' AND to_char(发生时间,'yyyymm') = to_char(add_months(SYSDATE,-1),'yyyymm') AND 处理时间 IS NOT NULL;
6、设置第二个SQL语句字段与模板表格的对应关系:
7、为附件模板添加第三个SQL语句,用于查询故障清单:
SQL语句如下:
--查询故障清单 SELECT 区域,设备地址,故障类型,发生时间,处理时间 FROM t_stat1 WHERE 分公司 = '青阳公司' AND to_char(发生时间,'yyyymm') = to_char(add_months(SYSDATE,-1),'yyyymm') ORDER BY 发生时间
8、设置第三个 SQL语句与模板表格的对应关系:
9、设置邮件收件人:
10、设置自动执行时间(执行计划):
这里设置为从5月1日起每月1号早上9点执行。
运行效果:
任务配置完成后,EasySQLMAIL将在每月1号早上执行这个任务,并把填写好的表格发送给"青阳维护经理<qingyang1@test.com>"。下面是执行的效果:
-系统自动填写的表格内容:
-通过电子邮件推送:
-通过企业微信或钉钉推送:
在任务的“收件人”中选择了企业微信收件人时,系统会自动把附件文件通过企业微信推送给员工:
企业微信推送结果:
说明:
(1) 除了上述的方式外,EasySQLMAIL还能够实现点对点信息推送、通过变量动态确定推送内容和收件人等功能。详细信息可参阅EasySQLMAIL的其他相关文档了解。
(2) 执行计划仅在EasySQLMAIL企业版中提供,EasySQLMAIL桌面版不支持执行计划。
相关链接:
转自https://mp.weixin.qq.com/s/9hOvyUK1WUfHAR257FvNXg