语法
Csv.Document(
source as any,
optional columns as any,
optional delimiter as any,
optional extraValues as nullable number,
optional encoding as nullable number
) as table
关于
返回 CSV 文档的内容作为表。
-
columns可以为 null、列数、列名称列表、表类型或选项记录。 -
delimiter可以是单个字符、字符列表或值"",该值表示行应由连续的空白字符截断。 默认:","。 - 有关
ExtraValues.Type的支持值,请参阅extraValues。 -
encoding指定 文本编码类型。
如果为 columns 指定了记录(且 delimiter、extraValues 和 encoding 为 null),则可能会提供以下记录字段:
-
Delimiter:单字符列分隔符。 默认:","。 -
Columns:可以为 null、列数、列名称列表或表类型。 如果列数小于在输入中找到的数,则将忽略其他列。 如果列数大于在输入中找到的数,则其他列将为 null。 如果未指定,则列数将取决于输入中找到的数。 -
Encoding:文件的文本编码。 默认值:65001 (UTF-8)。 -
CsvStyle:指定如何处理引号。-
CsvStyle.QuoteAfterDelimiter(默认值):字段中的引号仅紧跟分隔符之后。 -
CsvStyle.QuoteAlways:无论字段的出现位置如何,字段中的引号始终很重要。
-
-
QuoteStyle:指定如何处理带引号的换行符。-
QuoteStyle.Csv(默认值):带引号的换行符被视为数据的一部分,而不是作为当前行的末尾。 -
QuoteStyle.None:所有换行符都被视为当前行的末尾,即使它们出现在带引号的值内也是如此。
-
-
IncludeByteOrderMark:一个逻辑值,该值指示是否在 CSV 输出的开头包含字节顺序标记(BOM)。 设置为 true 时,将写入 BOM(例如 UTF-8 BOM:);0xEF 0xBB 0xBF如果设置为 false,则不包含 BOM。 此选项仅适用于输出方案。 默认值为false。 -
ExtraValues:请参阅ExtraValues.TypeExtraValues 支持的值。
示例 1
处理包含列标题的 CSV 文本。
使用情况
let
csv = Text.Combine({"OrderID,Item", "1,Fishing rod", "2,1 lb. worms"}, "#(cr)#(lf)")
in
Table.PromoteHeaders(Csv.Document(csv))
输出
Table.FromRecords({
[OrderID = "1", Item = "Fishing rod"],
[OrderID = "2", Item = "1 lb. worms"]
})
示例 2
处理包含多个分隔符字符的 CSV 文本。 在此示例中,第三个参数指定了要使用的分隔符模式 #|#,而不是默认模式。
使用情况
let
csv = Text.Combine({"OrderID#|#Color", "1#|#Red", "2#|#Blue"}, "#(cr)#(lf)")
in
Table.PromoteHeaders(Csv.Document(csv, null, "#|#"))
输出
Table.FromRecords({
[OrderID = "1", Color = "Red"],
[OrderID = "2", Color = "Blue"]
})