Condividi tramite


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

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 come vengono gestite le interruzioni di riga citate.
    • 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.
  • IncludeByteOrderMark: valore logico che indica se includere un byte Order Mark (BOM) all'inizio dell'output CSV. Quando impostato su true, il BOM viene scritto (ad esempio, UTF-8 BOM: 0xEF 0xBB 0xBF); quando impostato su false, non viene incluso alcun BOM. Questa opzione è applicabile solo negli scenari di output. Il valore predefinito è false.
  • ExtraValues: fare riferimento a ExtraValues.Type per i valori supportati di ExtraValues.

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))

Risultato

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, "#|#"))

Risultato

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