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"

我在第一步中使用制表符分隔符来防止拆分。