语法
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的支持值,请参阅ExtraValues.Type。 -
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.Type 中ExtraValues的支持值。
示例 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"]
})