Csv.Document

Sintassi

 
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

Informazioni su

Restituisce il contenuto del documento CSV come tabella.

  • columns può essere Null, il numero di colonne, un elenco di nomi di colonna, un tipo di tabella o un record di opzioni.
  • delimiter può essere un singolo carattere, un elenco di caratteri o il valore "", che indica che le righe devono essere suddivise per spazi vuoti consecutivi. Impostazione predefinita: ",".
  • Vedere ExtraValues.Type per i valori supportati di extraValues.
  • encodingspecifica il tipo di codifica del testo.

Se si specifica un record per columns (e delimiter, extraValuese encoding sono Null), è possibile fornire i campi di record seguenti:

  • Delimiter: un delimitatore di colonna a carattere singolo. Impostazione predefinita: ",".
  • Columns: può essere Null, il numero di colonne, un elenco di nomi di colonna o un tipo di tabella. Se il numero di colonne è minore di quello trovato nell'input, le colonne aggiuntive verranno ignorate. Se il numero di colonne è maggiore di quello trovato nell'input, le colonne aggiuntive saranno Null. Se non viene specificato, il numero di colonne verrà determinato da quanto trovato nell'input.
  • Encoding: codifica del testo del file. Impostazione predefinita: 65001 (UTF-8).
  • CsvStyle: specifica in che modo vengono gestite le virgolette.
    • CsvStyle.QuoteAfterDelimiter (impostazione predefinita): le virgolette in un campo sono significative solo immediatamente dopo il delimitatore.
    • CsvStyle.QuoteAlways: le virgolette in un campo sono sempre significative, indipendentemente dalla posizione.
  • QuoteStyle: specifica in che modo vengono gestite le interruzioni di riga.
    • QuoteStyle.Csv (impostazione predefinita): le interruzioni di riga tra virgolette vengono considerate parte dei dati e non come la fine della riga corrente.
    • QuoteStyle.None: tutte le interruzioni di riga vengono considerate come la fine della riga corrente, anche se ricorrono all'interno di un valore tra virgolette.

Esempio 1

Elaborare testo CSV con intestazioni di colonna.

Utilizzo

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

Output

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

Esempio 2

Elaborare testo CSV con caratteri delimitatori multipli. In questo esempio, il terzo parametro specifica il modello di delimitatore #|# da usare anziché il valore predefinito.

Utilizzo

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

Output

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