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