Csv.Document

Składnia

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

Informacje

Zwraca zawartość dokumentu CSV jako tabelę.

  • columns może mieć wartość null, liczbę kolumn, listę nazw kolumn, typ tabeli lub rekord opcji.
  • delimiter może być pojedynczym znakiem, listą znaków lub wartością "", która wskazuje, że wiersze powinny być dzielone przez kolejne znaki odstępu. Wartość domyślna: ",".
  • Zobacz ExtraValues.Type, aby poznać obsługiwane wartości extraValues.
  • encoding określa typ kodowania tekstu.

Jeśli określono columns rekord (i delimiter, extraValuesi encoding mają wartość null), można podać następujące pola rekordów:

  • Delimiter: ogranicznik kolumn z pojedynczym znakiem. Wartość domyślna: ",".
  • Columns: może mieć wartość null, liczbę kolumn, listę nazw kolumn lub typ tabeli. Jeśli liczba kolumn jest niższa niż liczba znaleziona w danych wejściowych, dodatkowe kolumny zostaną zignorowane. Jeśli liczba kolumn jest większa niż liczba znaleziona w danych wejściowych, dodatkowe kolumny będą mieć wartość null. Jeśli nie zostanie określona, liczba kolumn będzie określana przez to, co znajduje się w danych wejściowych.
  • Encoding: kodowanie tekstu pliku. Ustawienie domyślne: 65001 (UTF-8).
  • CsvStyle: określa sposób obsługi cudzysłowów.
  • QuoteStyle: określa sposób obsługi zacytowanych podziałów wierszy.
    • QuoteStyle.Csv (ustawienie domyślne): podziały wierszy w cudzysłów są traktowane jako część danych, a nie jako koniec bieżącego wiersza.
    • QuoteStyle.None: Wszystkie podziały wierszy są traktowane jako koniec bieżącego wiersza, nawet jeśli występują wewnątrz cytowanej wartości.
  • IncludeByteOrderMark: wartość logiczna wskazująca, czy na początku danych wyjściowych CSV ma być uwzględniony znak kolejności bajtów (BOM). Jeśli ustawiono wartość true, BOM jest zapisywany (na przykład UTF-8 BOM: 0xEF 0xBB 0xBF); w przypadku ustawienia wartości false nie jest uwzględniany żaden model BOM. Ta opcja ma zastosowanie tylko w scenariuszach wyjściowych. Wartość domyślna to false.
  • ExtraValues: Zapoznaj się z ExtraValues.Type obsługiwanymi wartościami funkcji ExtraValues.

Przykład 1

Przetwarzanie tekstu CSV z nagłówkami kolumn.

Użycie

let
    csv = Text.Combine({"OrderID,Item", "1,Fishing rod", "2,1 lb. worms"}, "#(cr)#(lf)")
in
    Table.PromoteHeaders(Csv.Document(csv))

Wyjście

Table.FromRecords({
    [OrderID = "1", Item = "Fishing rod"],
    [OrderID = "2", Item = "1 lb. worms"]
})

Przykład 2

Przetwarzanie tekstu CSV z wieloma znakami ogranicznika. W tym przykładzie trzeci parametr określa wzorzec #|# ogranicznika do użycia zamiast domyślnego.

Użycie

let
    csv = Text.Combine({"OrderID#|#Color", "1#|#Red", "2#|#Blue"}, "#(cr)#(lf)")
in
    Table.PromoteHeaders(Csv.Document(csv, null, "#|#"))

Wyjście

Table.FromRecords({
    [OrderID = "1", Color = "Red"],
    [OrderID = "2", Color = "Blue"]
})

Przykład 3

Przetwarzanie tekstu CSV przy użyciu ogranicznika niestandardowego i stałej liczby kolumn.

Użycie

Csv.Document(
    "1|Barb#(cr)#(lf)2|Cal",
    [
        Delimiter = "|",
        Columns = 3
    ]
)

Wyjście

Table.FromRecords({
    [Column1 = "1", Column2 = "Barb", Column3 = ""],
    [Column1 = "2", Column2 = "Cal", Column3 = ""]
})

Przykład 4

Przetwarzaj tekst CSV z niestandardowym ogranicznikiem i zestawem niestandardowych nazw kolumn, traktując podziały wierszy osadzone wewnątrz cudzysłowów jako koniec bieżącego wiersza.

Użycie

Csv.Document(
    "1|Barb|""Smith#(cr)#(lf)2|Cal|Fisher",
    [
        Delimiter = "|",
        Columns = type table [ID = text, First Name = text, Last Name = text],
        QuoteStyle = QuoteStyle.None
    ]
)

Wyjście

Table.FromRecords({
    [ID = "1", First Name = "Barb", Last Name = "Smith"],
    [ID = "2", First Name = "Cal", Last Name = "Fisher"]
})