Редактирование источника из запроса, который загружает папку файлов CSV. Есть идеи о том, что означает {0} [Content]? - PullRequest
0 голосов
/ 10 июля 2019

У меня есть небольшая тетрадь, в которой я тестировал и изучал PowerQuery.Я случайно изменил расположение папки, и это испортило все мои запросы.Я отредактировал их все и изменил источник, чтобы решить проблему, но это не сработало для данных запроса, импортированных из папки файлов CSV.Этот конкретный запрос генерирует подпапку из 4 других запросов.Мне удалось решить эту проблему, проверив код (в расширенном редакторе) из резервной копии.Я заметил, что какая-то часть была изменена (системой), и, добавив ее в один из «системных» запросов, все заработало.Я пытаюсь понять, почему эта строка важна, и у меня есть.

Итак, я проверил несколько быстрых ссылок на Microsoft, чтобы проверить, что делает функция FOlder.Files, но это не ясно, что {0} или [Содержание] среднее.

Подводя итог, я пытаюсь понять фрагмент кода:

Запрос "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"

1 Ответ

0 голосов
/ 10 июля 2019

Когда вы загружаете папку, вы получаете таблицу в следующем формате:

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] относится к первому столбцу, который содержит двоичные данные для этого файла.

Это как ссылка на Excel A1, но строка / столбец вместо столбца / строки.


Вы можете исключить этот шаг, загрузив файл напрямую, а не переходя по пути к папке. Например, вместо

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

Вы могли бы написать

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

при условии, что FileA.csv - это файл в первой строке папки.

...