power query中加载CSV时如何处理多个引号?
How to deal with multiple quotes when loading CSV in power query?
我有几个 CSV 文件要合并为一个 table(文件具有相同的结构),但文件结构太糟糕了,可能会出现问题。
第一行很普通,只是headers用逗号分隔:
Account,Description,Entity,Risk,...
但是实际数据的行以双引号“开始和结束,列用逗号分隔,但是人(全名)在开始和结束时有两个double-quotes。我明白这是一个转义字符将名称保留在一列中,但一列就足够了。
"1625110,To be Invoiced,587,Normal,""Doe, John"",..."
所以我需要做但不知道如何从数据的每一行的开头和结尾删除 ",并在每一行的数据中将 ""
替换为 "
。
我需要在 Power Query 中执行此操作,因为随着时间的推移会有更多类似的 CSV 文件,我不想手动清理它们。
有什么想法吗?
我正在尝试简单的:
= Table.AddColumn(#"Removed Other Columns", "Custom", each Csv.Document(
[Content],
[
Delimiter = ",",
QuoteStyle = QuoteStyle.Csv
]
))
首先尝试加载到单个列,替换值以删除多余的引号,然后按 ","
.
拆分
这是加载单个文件的样子:
let
Source = Csv.Document(File.Contents("filepath\file.csv"),[Delimiter="#(tab)"]),
ReplaceQuotes = Table.ReplaceValue(Source,"""""","""",Replacer.ReplaceText,{"Column1"}),
SplitIntoColumns = Table.SplitColumn(ReplaceQuotes, "Column1", Splitter.SplitTextByDelimiter(",", QuoteStyle.Csv)),
#"Promoted Headers" = Table.PromoteHeaders(SplitIntoColumns, [PromoteAllScalars=true])
in
#"Promoted Headers"
我在第一步中使用制表符分隔符来防止拆分。
我有几个 CSV 文件要合并为一个 table(文件具有相同的结构),但文件结构太糟糕了,可能会出现问题。
第一行很普通,只是headers用逗号分隔:
Account,Description,Entity,Risk,...
但是实际数据的行以双引号“开始和结束,列用逗号分隔,但是人(全名)在开始和结束时有两个double-quotes。我明白这是一个转义字符将名称保留在一列中,但一列就足够了。
"1625110,To be Invoiced,587,Normal,""Doe, John"",..."
所以我需要做但不知道如何从数据的每一行的开头和结尾删除 ",并在每一行的数据中将 ""
替换为 "
。
我需要在 Power Query 中执行此操作,因为随着时间的推移会有更多类似的 CSV 文件,我不想手动清理它们。
有什么想法吗?
我正在尝试简单的:
= Table.AddColumn(#"Removed Other Columns", "Custom", each Csv.Document(
[Content],
[
Delimiter = ",",
QuoteStyle = QuoteStyle.Csv
]
))
首先尝试加载到单个列,替换值以删除多余的引号,然后按 ","
.
这是加载单个文件的样子:
let
Source = Csv.Document(File.Contents("filepath\file.csv"),[Delimiter="#(tab)"]),
ReplaceQuotes = Table.ReplaceValue(Source,"""""","""",Replacer.ReplaceText,{"Column1"}),
SplitIntoColumns = Table.SplitColumn(ReplaceQuotes, "Column1", Splitter.SplitTextByDelimiter(",", QuoteStyle.Csv)),
#"Promoted Headers" = Table.PromoteHeaders(SplitIntoColumns, [PromoteAllScalars=true])
in
#"Promoted Headers"
我在第一步中使用制表符分隔符来防止拆分。