我目前正在从事一项自动化工作,该工作要求将sql结果导出到excel数据。我想通过SQL查询做到这一点。我知道的几种选择如下,但是在我开始探索这些东西之前。我想知道最好的方法。
PS-如果有一种方法可以在查询执行期间动态创建Excel并在多个Excel工作表中导出数据,那真是太好了。
您可以通过CREATE VIEW
在Excel 2016
的数据连接下的PowerQuery
中使用该视图。首选视图,因为视图是在服务器中独立管理的,并提供实时数据结果,而无需在Excel文件中嵌入完整查询。结果集作为可刷新表存在于工作簿中。需要记录的结果应该通过新的工作簿完成,或者通过单独的脚本将UPDATE
返回到服务器。
在PowerQuery编辑器的“主页”选项卡中,单击Advanced Editor
。数据库连接字符串和对服务器的调用在下面。您还可以使用Name Manager
中的表将参数从Excel表动态传递给查询。
Excel tab, table name: tbl_Parameters A B 1 StartDate 01/01/2020 2 EndDate 02/01/2020
let Source = Sql.Database("ServerName" , "Database", [Query=" DECLARE @Start_Date AS datetime DECLARE @End_Date AS datetime SET @Start_Date = '"&StartDate&"' SET @End_Date = '"&EndDate&"' SELECT * FROM uvw_product WHERE item_sold_date BETWEEN @Start_Date AND @End_Date "]) in Source
前一段时间,我将这个Powershell脚本拼凑在一起。它查询sql server数据,另存为csv,对其进行格式化并另存为xls,然后通过smtp进行邮件发送。您可以设置Windows计划任务以使其自动化。