excel - 从加载 CSV 文件文件夹的查询中编辑源。关于“{0}[Content]”的含义有什么想法吗?
问题描述
我有一个小测试工作簿,我在其中测试和学习 PowerQuery。我碰巧更改了它的文件夹位置,这弄乱了我所有的查询。我对它们进行了全部编辑并更改了源以解决问题,但这不适用于从 CSV 文件文件夹中导入数据的查询数据。该特定查询生成其他 4 个查询的子文件夹。我设法通过检查备份中的代码(在高级编辑器中)来解决它。我注意到某些部分已更改(由系统),并且通过将其添加到“系统”查询之一,一切正常。我试图理解为什么那一行很重要,而我有 .
因此,我检查了一些快速的微软参考资料来检查 Folder.Files 函数的作用,但这并没有明确 {0} 或 [Content] 的含义。
总结我试图理解的代码是:
“Arquivo de Amostra”查询(转换为示例文件)
let
Fonte = Folder.Files("C:\SomePath\Transactions"),
Navegação1 = Fonte{0}[Content]
in
Navegação1
它可以翻译成:
let
Source = Folder.Files("C:\SomePath\Transactions"),
Navigation1 = Source{0}[Content]
in
Navigation1
为什么该行如此重要,为什么查询在“重新包含”它之前不起作用?{0} 是什么意思?我确实认为以某种方式将内容与查询的返回联系起来。
还有其他 3 个查询未提及此参数,尽管它们引用了查询“Arquivo de amostra”,但我也可以包含它们,但我试图避免过多或不必要的信息。
我还将包括从 CSV 文件夹加载数据的原始查询。
let
Fonte = Folder.Files("C:\SomePath\Transactions"),
#"Arquivos Ocultos Filtrados1" = Table.SelectRows(Fonte, each [Attributes]?[Hidden]? <> true),
#"Invocar Função Personalizada1" = Table.AddColumn(#"Arquivos Ocultos Filtrados1", "Transformar Arquivo de Transactions_1997-1998", each #"Transformar Arquivo de Transactions_1997-1998"([Content])),
#"Colunas Renomeadas1" = Table.RenameColumns(#"Invocar Função Personalizada1", {"Name", "Nome da Origem"}),
#"Outras Colunas Removidas1" = Table.SelectColumns(#"Colunas Renomeadas1", {"Nome da Origem", "Transformar Arquivo de Transactions_1997-1998"}),
#"Coluna de Tabela Expandida1" = Table.ExpandTableColumn(#"Outras Colunas Removidas1", "Transformar Arquivo de Transactions_1997-1998", Table.ColumnNames(#"Transformar Arquivo de Transactions_1997-1998"(#"Arquivo de Amostra"))),
#"Tipo Alterado" = Table.TransformColumnTypes(#"Coluna de Tabela Expandida1",{{"Nome da Origem", type text}, {"transaction_date", type date}, {"stock_date", type date}, {"product_id", Int64.Type}, {"customer_id", Int64.Type}, {"store_id", Int64.Type}, {"quantity", Int64.Type}}),
#"Linhas Classificadas" = Table.Sort(#"Tipo Alterado",{{"transaction_date", Order.Ascending}}),
#"Colunas Removidas" = Table.RemoveColumns(#"Linhas Classificadas",{"Nome da Origem"})
in
#"Colunas Removidas"
解决方案
加载文件夹时,您将获得以下格式的表格:
Content | Name | Extension | Date accessed | [...etc...]
--------+-------+-----------+--------------------+-------------
Binary | FileA | .csv | 7/10/2019 12:25 PM | [...etc...]
Binary | FileB | .xlsx | 7/10/2019 10:25 AM | [...etc...]
... | ... | ... | ... | ...
这是Source
步骤。在导航步骤中,{0}
引用此表的第一行(从 0 开始索引)并[Content]
引用包含该文件的二进制数据的第一列。
它就像 ExcelA1
参考,但行/列而不是列/行。
您可以通过直接加载文件而不是从文件夹路径导航来消除该步骤。例如,而不是
Source = Folder.Files("C:\SomePath\Transactions"),
Navigation1 = Source{0}[Content]
你可以写
Source = Csv.Document(File.Contents("C:\SomePath\FileA.csv"))
假设FileA.csv
是文件夹中第一行的文件。
推荐阅读
- c# - 放置在主窗口上时,用户控件缺少按钮
- php - 使用 php 提取 url 元标记
- android - 如何将edittext值从recyclerview适配器传递给android中的活动
- c# - 如何创建文件或将文件上传到 Azure Data Lake Storage Gen2
- php - windows文件解密
- java - 将枚举值列表与单个枚举进行比较
- sql - 如何在 SQL oracle 中连接 2 个表
- c++ - 由于模数运算符导致的编译代码问题
- javascript - 使用 where 子句 firestore 搜索时获取文档 ID
- node.js - Geojson 的 Mongoose 子文档