从加载 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
是文件夹第一行中的文件。
我有一个小的测试工作簿,用于测试和学习 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
是文件夹第一行中的文件。