本文取自:https://pqfans.com/958.html,有些许改动

官方说明

返回表形式的CSV文档内容。
columns:如果指定了一个记录,且delimiter、extraValues、encoding为Null,则所有参数Delimiter、Columns、Encoding、CsvStyle和QuoteStyle都将从该记录中获取。delimiter可以采用单个字符或列表;如果未指定或为Null,则使用逗号。有关可选extraValues的支持值,请参阅ExtraValues.Type。encoding指定文本编码类型。
=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,同样适用于txt,csv和txt本质上都是一样的,同属文本文件


必填参数(1)
类型为binary,通常是先使用File.Contents将csv文件解析为binary,然后再用Csv.Document将binary解析出来,比如= Csv.Document(File.Contents(“C:\Users\rages\Desktop\csv\test1.csv”),[Delimiter=”,”, Columns=2, Encoding=65001, QuoteStyle=QuoteStyle.None])
可选参数(2-5)
第2参数为列数,一般情况下不填即返回所有列,但是有些情况如不指定列数可能会只返回一两列,所以先不填试试看,如显示不完整再数下源数据共有几列,填到第二参数。
第3参数为分隔符,常见的分隔符有逗号、空格、制表符等等,同样可以先不填看看结果,不填或null默认使用逗号,如果不正确再加上分隔符。
第4参数为多出列的处理,有3个枚举常量:ExtraValues.List,ExtraValues.Error,ExtraValues.Ignore,分别可以用0,1,2代替,意思就是如果源数据的列数超过指定列数,是返回列表还是报错还是忽略。比如源数据有很多列,但是我写= Csv.Document(File.Contents(“C:\Users\rages\Desktop\csv\test1.csv”),1,”,”,0),第2参数只指定了1列,就会返回一个列表,超出的列就会全部放在这个list中。而如果填1就会因为超出列数而报错,填2就会忽略错误。
第5参数为编码,一般默认为65001,如果出现乱码再更改此参数,中文编码一般为936或填0.

其他

若第三3-5参数不填时,第2参数可以为一个recod,格式为[Columns= ,Encoding= ],如上面介绍的第1参数中的写法,大多数情况我们都会采用这种写法。
若导入的文件为.xlsx,.xls等,请参照另一篇