Csv.Document
语法
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:所有换行符都视为当前行的末尾,即使它们出现在带引号的值中。
示例 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"]
})