
2.2.2 通过“Microsoft Query”使用SQL语句的步骤
假设在“D:\第2章”目录下有表“订单表.xlsx”,如图2.15所示,现在要使用Microsoft Query将此表导入到Excel中,具体步骤如下。

图2.15 订单表
步骤1:打开Excel 2019,新建一个工作簿,并将其保存为“实例2.2.xlsx”。打开工作簿,将Sheet1工作表重命名为“实例2.2”。选中工作表中的A1单元格。
步骤2:点击“数据”菜单,单击“获取数据”下拉菜单,选中“自其他源”菜单项,在其展开的菜单中选择“自Microsoft Query”选项(图2.16),此时打开“选择数据源”窗口,如图2.17所示。在“数据库”选项卡中选择“Excel Files*”选项,点击“确定”按钮。

图2.16 数据源选择“自Microsoft Query”选项

图2.17 “选择数据源”窗口
步骤3:此时在弹出的“选择工作簿”窗口中,依次选择“驱动器”“目录”,然后点击要导入的表“订单表.xlsx”,最后选择“确定”按钮,如图2.18所示。

图2.18 “选择工作簿”窗口
步骤4:点击“确定”按钮后,会弹出“Microsoft Query”窗口,并在“Microsoft Query”窗口中弹出“添加表”对话框,如图2.19所示。在“表”中选择“订单表$”,单击“添加”按钮,然后点击“关闭”按钮,回到“Microsoft Query”窗口。

图2.19 “添加表”窗口
步骤5:此时可以看到,“订单表”已经出现在“Microsoft Query”窗口中,如图2.20所示,可以通过双击“订单表$”中的“*”,使表中所有数据显示在下方的数据窗格中,如图2.21所示。

图2.20 “Microsoft Query”窗口

图2.21 在“Microsoft Query”窗口查询表的全部数据
双击“*”的作用是查询表中的所有列,如果没有搭配其他SQL语句,相当于查询整个表。此时也可以使用SQL语句来对数据进行有选择性的查询和操作。
步骤6:点击“Microsoft Query”工具栏中的“显示SQL”按钮,弹出SQL语句编辑窗口,如图2.22所示。此时,文本框中的SQL语句如下:

图2.22 “SQL”窗口
SELECT `订单表$`.订单号, `订单表$`.收件人, `订单表$`.货品名称, `订单表$`.目的地, `订单表$`.物流委托
FROM `D:\第2章\订单表.xlsx`.`订单表$` `订单表$`
这段SQL语句的作用与“步骤5”中双击“*”的作用是相同的,都可以实现查询表中所有数据的作用。对这段SQL语句做如下修改,如图2.23所示,并点击“确定”按钮。

图2.23 修改后的SQL语句
SELECT `订单表$`.订单号
FROM `D:\第2章\订单表.xlsx`.`订单表$` `订单表$`
步骤7:点击“确定”按钮后,将返回到“Microsoft Query”窗口。在数据窗格中,只有“订单号”一列被查询出来,而其他数据都没有查询出来,如图2.24所示。因此,使用SQL语句,不仅可以实现全表数据的查询,还可以实现对表中部分数据的查询。另外,对于通过SQL语句查询出的数据,还可以将其导入到Excel表格中。

图2.24 查询某一列数据
步骤8:在“Microsoft Query”窗口中选择“文件”菜单,点击“将数据返回Microsoft Excel”命令,如图2.25所示,弹出如图2.6所示的“导入数据”窗口。

图2.25 返回数据操作
在“导入数据”窗口中指定“数据的放置位置”为“现有工作表”的A1单元格,其他选项不变,点击“确定”按钮,关闭“导入数据”窗口。此时通过SQL语句查询到的“订单号”信息会导入到表“实例2.2”中,如图2.26所示。

图2.26 使用“Microsoft Query”将数据返回Excel
通过Microsoft Query可以方便地修改、编写SQL语句,实现非常复杂的查询操作。但是Microsoft Query是Excel的可选安装项,如果安装时选择了“典型”安装,那么Microsoft Query将无法使用。只有安装了完整版的Excel,才可以正常使用Microsoft Query组件。因此,本书的实例讲解主要通过“现有连接”来使用SQL语句,其具体步骤见2.1.1节。
本章介绍了两种使用SQL语句的方式,无论是通过“现有连接”还是通过“Microsoft Query”,其原理都是将Excel文件视作数据源,使用“现有连接”或者“Microsoft Query”将数据源导入到一个新的表或者空白的数据区域,在导入的过程中使用SQL语句来实现不同数据的查询操作。另外,还可通过“刷新”操作使导入的数据和数据源保持一致。