Если строка добавлена в файл CSV, и эта строка содержит больше «столбцов», чем оригинал, Power Query не будет добавлять столбцы для новой строки при обновлении существующего запроса.
Еслиновый запрос генерируется, тогда появится дополнительный столбец.Я предполагаю, что это потому, что PQ просматривает первые 200 (по умолчанию) строк, чтобы определить формат при создании запроса.
Исходный файл CSV:
key1:value1,key2:value2
key3:value3,key4:value4
Оригинальный M-код
let
Source = Csv.Document(File.Contents("d:\Users\Ron\Desktop\myCSV.csv"),[Delimiter=",", Columns=2, Encoding=1252, QuoteStyle=QuoteStyle.None])
in
Source
Он импортирует и генерирует: (как и ожидалось)
Изменить CSV:
key1:value1,key2:value2
key3:value3,key4:value4
key5:value5,key6:value6,key7:value7
Обновить запрос:
Обратите внимание, что третий столбец из третьей строкине импортируется.
Новый запрос получит этот третий столбец, но параметр Columns=
будет изменен на 3
.
Я попытался удалить аргумент Columns=2
изSource
оператор в M-Code
(как предлагается в других сообщениях), но это не создаст третий столбец (, если только этот дополнительный столбец не существует в первой строке ).
ЕслиColumns=2
аргумент изменен на Columns=3
, тогда все три столбца будут импортированы по желанию, но невозможно заранее узнать количество потенциальныхстолбцы.
Полагаю, что одним из обходных путей было бы указать значение Columns=
, которое будет больше наибольшего возможного числа столбцов, которое может быть там, а затем удалить пустые столбцы, но, похоже, тамдолжно быть лучшее решение.
Есть мысли?