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