基于每一种资料来源的类型、格式、结构与複杂度有所不同,在使用Power Query汇入外部资料进行查询时,便会自动完成先期的资料汇入与转换步骤,而从这些查询步骤的语句、步骤数目,您也可以轻鬆解读资料处理的过程。
以刚刚在Power Query环境下操作汇入外部的XML档案为例,所建立的查询里会自动完成2个查询步骤。分别是[来源]以及[已变更类型],逐一呈现在画面右侧的[查询设定]窗格里,而最后一个步骤的结果也正是此查询的最后输出。当您以滑鼠点选查询步骤时,该查询步骤所对应的原始程式码,也就是M语言程式会立即显示在视窗上方的[资料编辑列](即[公式编辑列])上。想想,这不是很类似在Excel环境里工作表底端的公式编辑列上输入与编辑公式相同操作介面吗?
解说第1个步骤「来源」:
- 来源= Xml.Tables(File.Contents("F:\2025\PowerQuery文章\MLB球队.xml"))
即便不会从无到有的撰写,但也应该不难看懂这是取得来自xml格式的表格(Xml.Tables),而档案的内容(File.Contents)是来自路径与档案名称为"F:\2025\PowerQuery文章\MLB球队.xml"的XML档案。
解说第2个步骤「已变更类型」:
- = Table.TransformColumnTypes(来源,{{"Attribute:generated", type datetime}})
顾名思义这应该是针对表格里的资料栏位进行资料型态的设定与变更(Table.TransformColumnTypes)
回到最后一个步骤,从查询输出结果中,可以看到此次汇入的这份XML档案,第1个资料行的栏位名称是「MLB球队」其资料型态是M语言的容器 – 资料表(若您在M语言容器这方面比较没有经验,可参阅笔者另一系列文章)。第2个资料栏位的栏位名称是「MLB球队」其资料型态也是M语言的容器– 资料表。当您看到这个资料列的内容,并将滑鼠游标移至此Table文字上,滑鼠游标立即呈现超连结般的手指头状,但点按下去并非超连结的意思,而是展开此资料表(Table)之意。在画面右侧[查询设定]工作窗格里,套用的查询步骤中也多了两个步骤:[MLB球队1]以及[已经变类型1]。
您也可以如同先前所学习的操作,透过进阶编辑器来仔细导读、研究一下这些操作过程的M语言程式码,以理解程式码的前后关係与思维逻辑。此时点按[常用]索引标籤后,点按[查询]群组里的[进阶编辑器]命令按钮。
随即开启[进阶编辑器]对话,可以看到此查询的完整M语言程式编码,在此就可以看到每一个查询步骤的名称、程式码,其中第3个步骤的程式码:
= 已变更类型{0}[MLB球队]
便是当时将MLB球队资料表其首笔记录的内容展开,然后Power Query又主动执行第4个步骤:Table.TransformColumnTypes的程式码,将各资料栏位设定为适合的资料型态。
对此次的查询而言,这是第二度进入Power Query编辑器进行编辑,因此,结束查询编辑器的操作时,并无法点选可选择查询结果输出的[关闭并载入至…]选项,而只能点选[关闭并载入至]选项。
返回Excel活页簿画面,就可以看到30支MLB球队的球场资讯资料表。
学习XML档案格式与实作系列:
- <<学习XML档案格式与实作系列:(1/6) 说说XML的特性>>
- <<学习XML档案格式与实作系列:(2/6) 为什么我汇入的XML不一样?>>
- <<学习XML档案格式与实作系列:(3/6) 认识XML档案>>
- <<学习XML档案格式与实作系列:(4/6) 解析XML档案开头的定义>>
- <<学习XML档案格式与实作系列:(5/6) 实际汇入XML的情境>>
- <<学习XML档案格式与实作系列:(6/6) 展开XML内容的查询过程>>