从加载 CSV 文件文件夹的查询中编辑源。关于“{0}[Content]”的含义有什么想法吗?

Editting source from a query that loads a folder of CSV files. Any ideas on what "{0}[Content]" means?

我有一个小的测试工作簿,用于测试和学习 PowerQuery。 我碰巧更改了它的文件夹位置,这搞砸了我所有的查询。 我对它们进行了全部编辑并更改了源以解决问题,但这对于从 CSV 文件文件夹导入数据的查询数据不起作用。 该特定查询生成其他 4 个查询的子文件夹。 我设法通过检查备份中的代码(在高级编辑器中)来解决它。我注意到某些部分已更改(由系统)并将其添加到 "system" 查询之一,一切正常。 我试图理解为什么那一行很重要而且我有 .

因此,我检查了一些快速的 Microsoft 参考资料以检​​查 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 

为什么该行如此重要,为什么查询在 "reincluding" 之前不起作用? {0} 是什么意思? 我确实认为以某种方式将内容链接到查询的 return。

还有其他 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"

加载文件夹时,您会得到一个 table,格式如下:

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} 指的是此 table 的第一行(它的索引从 0 开始),[Content] 指的是包含该文件二进制数据的第一列。

它就像一个 Excel A1 参考,但 row/column 而不是 column/row。


您可以通过直接加载文件而不是从文件夹路径导航来消除该步骤。例如,而不是

Source = Folder.Files("C:\SomePath\Transactions"),
Navigation1 = Source{0}[Content]

你可以写

Source = Csv.Document(File.Contents("C:\SomePath\FileA.csv"))

假设 FileA.csv 是文件夹第一行中的文件。