Compartir a través de


Csv.Document

Sintaxis

 
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

Acerca de

Devuelve el contenido del documento CSV como una tabla.

  • columns puede ser null, el número de columnas, una lista de nombres de columna, un tipo de tabla o un registro de opciones
  • delimiter puede ser un solo carácter, una lista de caracteres o el valor "", que indica que las filas deben dividirse con caracteres de espacio en blanco consecutivos. Predeterminado: ",".
  • ConsulteExtraValues.Type para saber cuáles son los valores admitidos de extraValues.
  • encoding especifica el tipo de codificación de texto.

Si se especifica un registro para columns (y delimiter, extraValues y encoding son null), se pueden proporcionar los siguientes campos de registro:

  • Delimiter: un delimitador de columna de caracteres único. Predeterminado: ",".
  • Columns: puede ser null, el número de columnas, una lista de nombres de columna o un tipo de tabla. Si el número de columnas es menor que el número de la entrada, las columnas extra se omitirán. Si el número de columnas es mayor que el número de la entrada, las columnas extra serán null. Si no se especifica, el número de columnas se determinará en función de lo que refleje la entrada.
  • Encoding: codificación de texto del archivo. Valor predeterminado: 65001 (UTF-8).
  • CsvStyle: especifica cómo se tratan las comillas.
    • CsvStyle.QuoteAfterDelimiter (valor predeterminado): las comillas de un campo solo son significativas inmediatamente después del delimitador.
    • CsvStyle.QuoteAlways: las comillas de un campo son significativas siempre, independientemente del lugar en que aparecen.
  • QuoteStyle: especifica cómo se tratan los saltos de línea entre comillas.
    • QuoteStyle.Csv: los saltos de línea entre comillas se tratan como parte de los datos, no como el final de la fila actual.
    • QuoteStyle.None: todos los saltos de línea se tratan como el final de la fila actual, incluso cuando aparecen dentro de un valor entre comillas.

Ejemplo 1

Procesar texto CSV con encabezados de columna.

Uso

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

Salida

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

Ejemplo 2

Procesar texto CSV con varios caracteres delimitadores. En este ejemplo, el tercer parámetro especifica el patrón #|# delimitador que se va a usar en lugar del valor predeterminado.

Uso

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

Salida

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