如何从文件夹导入时保存path条件?

我从子文件夹中导入许多文本文件,一切工作正常。 我的文件夹在不同的时期在许多文件夹中都有相同的文本文件,例如:

AllData\201501\Revenues.txt AllData\201502\Revenues.txt AllData\201502\Revenues.txt ..... 

我正在准备收入的查询中需要“201501”这样的path。 我不能将date写入.txt文件,由第三方生成。

如何在我的文本文件行上joinFullPath? 切割之后很简单。

(很抱歉,如果以下任何function尚未公开发布Power Query,那么今天就可以在Power BI Designer中使用!)

从文件夹给我: 文件夹

使用Text.FromBinary添加一个名为Text的列的自定义步骤以获取文件文本: FromBinary

然后删除Folder PathText以外的每一列: 列

从那里,分隔文件夹path列由分隔符\ 分裂

然后只保留与date的path列: Remove2

接下来,将两个文本列合并为一个自定义: ,就完成了!

合并

运行这个来设置上面使用的数据:

 cd c:\ mkdir alldata cd alldata mkdir 201501 mkdir 201502 mkdir 201503 echo Made $100 > 201501\Revenues.txt echo Made $200 > 201502\Revenues.txt echo Made $300 > 201503\Revenues.txt 

此转换的完整M源代码:

 let Source = Folder.Files("c:\AllData"), #"Added Custom" = Table.AddColumn(Source, "Text", each Text.FromBinary([Content])), #"Removed Other Columns" = Table.SelectColumns(#"Added Custom",{"Folder Path", "Text"}), #"Split Column by Delimiter" = Table.SplitColumn(#"Removed Other Columns","Folder Path",Splitter.SplitTextByDelimiter("\"),{"Folder Path.1", "Folder Path.2", "Folder Path.3", "Folder Path.4"}), #"Changed Type" = Table.TransformColumnTypes(#"Split Column by Delimiter",{{"Folder Path.1", type text}, {"Folder Path.2", type text}}), #"Removed Other Columns1" = Table.SelectColumns(#"Changed Type",{"Folder Path.3", "Text"}), #"Merged Columns" = Table.CombineColumns(#"Removed Other Columns1",{"Folder Path.3", "Text"},Combiner.CombineTextByDelimiter(": ", QuoteStyle.None),"Revenues") in #"Merged Columns"