gpt4 book ai didi

excel - 刷新 CSV 导入时 Power Query 无法添加列

转载 作者:行者123 更新时间:2023-12-04 17:38:18 26 4
gpt4 key购买 nike

如果将一行添加到 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

它将导入并生成:(如预期的那样)

enter image description here

修改 CSV:
key1:value1,key2:value2
key3:value3,key4:value4
key5:value5,key6:value6,key7:value7

刷新查询:

enter image description here

请注意,第三行的第三列未导入。

一个新查询将选择第三列,但 Columns=参数更改为 3 .

我试过删除 Columns=2来自 Source 的参数 M-Code 中的声明(如其他帖子中所建议的那样),但这不会创建第三列(除非第一行中存在额外的列)。

如果 Columns=2参数是 已更改 Columns=3 ,然后将根据需要导入所有三列,但无法提前知道潜在列的数量。

我想一种解决方法是指定 Columns=值将大于可能存在的最大可能列数,然后删除空白列,但似乎应该有更好的解决方案。

有什么想法吗?

最佳答案

我认为最简单的方法是使用换行符作为分隔符将其加载为单列,然后在查询编辑器中拆分列。

let
Source = Csv.Document(File.Contents("d:\Users\Ron\Desktop\myCSV.csv"),[Delimiter="#(lf)", Encoding=1252, QuoteStyle=QuoteStyle.None]),
#"Split Column by Delimiter" = Table.SplitColumn(Source, "Column1", Splitter.SplitTextByDelimiter(",", QuoteStyle.Csv), {"Column1.1", "Column1.2", "Column1.3"})
in
#"Split Column by Delimiter"

关于excel - 刷新 CSV 导入时 Power Query 无法添加列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55658504/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com