当简单行列式表格无法满足需要时,您可以自己用Excel设计一个表格模板文件,然后设置好提取数据的SQL语句,并定义好SQL语句的数据字段与模板中的数据单元格的关联关系,EasySQLMAIL就能够按照您的配置内容,将提取的数据填充到模板表格的对应数据单元格中。
这种表格模板称为“自定义Excel文件”模板。
注意:自定义Excel文件模板必须是xlsx格式。
(1)在Excel中设计好表格模板,在表格中设置好标签单元格和数据单元格的位置和样式。
在Excel中设计自定义表格模板
(2)在EasySQLMAIL的任务配置界面中创建一个附件模板,附件模板的类型选择“自定义Excel文件”:
创建自定义模板
(3)点击“创建新查询”,打开“创建新查询”窗口,并在窗口中设置取数的SQL语句和数据字段与数据单元格的关联关系。
设置SQL语句和数据字段与据单元格的关联关系
SQL语句和数据字段关联关系设置好后,点击“预览”查看执行效果:
自定义模板执行的效果
注意,在上面的图中,合计单元格D5的结果并不是我们想要的13,而是5。
D3单元格的公式
这是因为在EasySQLMAIL转换数据时,并不会对合计单元格的公式进行修改,因此,最后D5单元格的公式计算结果中只计算了D2单元格的值,D3、D4单元格的值没有被计算。
为了让合计单元格能够显示出正确的公式计算结果,我们需要对模板作如下改动:
(1)在D2单元格上创建一个命名区域,区域名称为"cnt":
在D2单元格上创建一个名为"cnt"的命名区域
(2)将合计单元格的公式修改为SUM(cnt):
修改公式为SUM(cnt)
(3)将修改后的模板上传到任务配置中,预览任务,可以看到合计单元格的结果已经正确显示为13了:
公式修改后的执行结果
此外,在使用自定义Excel文件模板时,还需要注意行的扩展问题。
例如,有如下的自定义Excel文件模板:
在数据行上使用了公式
如果直接用这个模板,执行结果如下:
F3、F4单元格为空
解决这个问题的方法是,在模板的A2:F2范围内创建一个命名区域,让EasySQLMAIL在处理时将A2:F2这个范围作为一个整体来扩展。具体操作如下:
(1)在模板文件A2:F2创建一个命名区域:
在A2:F2范围内创建一个命名区域
(2)将新的模板文件上传到系统中,并在“查询属性”对话框中的“命名区域”列表中,选择新创建的命名区域,设置好数据字段与数据单元格的关联关系:
设置查询属性,选择命名区域
这时,我们再预览任务,可以看到F3、F4单元格已经能正确显示了。
修改后的执行结果
EasySQLMAIL的自定义Excel文件中可以使用图表。但在使用图表时需要注意,EasySQLMAIL在填充数据时,并不会对图表的数据源进行修改。这时,可能会出现生成的表格中的图表数据不正确的情况。
例如,有如下的表格模板:
表格中图表的系列值指向B2单元格
我们直接使用这个模板,执行结果如下:
图表没有正确显示
这是因为EasySQLMAIL在生成表格时,没有同时修改图表的数据源属性而导致的。
我们可以按以下方法来解决这个问题:
(1)在模板表格的B2单元格(也就是"销售量"单元格)上创建一个命名区域:
在A2、B2、C2单元格上各创建一个命名区域
(2)修改图表的数据源,标签轴的数据区域修改为“=带图表的工作表.xlsx!日期”,销售量图例项的系列值修改为“=带图表的工作表.xlsx!销售量”,销售收入图例项的系列值修改为“=带图表的工作表.xlsx!销售收入”。其中红字是模板文件的文件名,绿字为命名区域名称。
修改图表的数据源
(3)将修改后的模板文件上传到系统中,然后再预览任务:
修改后的执行结果
从执行结果中可以看到图表已能正确显示。
有关自定义Excel文件模板的更多信息,请参考《EasySQLMAIL系统操作手册》中的相关内容。
感谢您阅读本文档。