语法
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"]
})