Compartilhar via


Csv.Document

Sintaxe

 
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

Sobre

Retorna o conteúdo do documento CSV como uma tabela.

  • columns pode ser nulo, o número de colunas, uma lista de nomes de colunas, um tipo de tabela ou um registro de opções.
  • O delimiter pode ser um caractere, uma lista de caracteres ou o valor "", que indica que as linhas devem ser divididas por caracteres de espaço em branco consecutivos. Padrão: ",".
  • Consulte ExtraValues.Type para obter os valores suportados de extraValues.
  • encodingEspecifica o tipo de codificação de texto.

Se um registro for especificado para columns (e delimiter, extraValuese encoding forem nulos), os seguintes campos de registro poderão ser fornecidos:

  • Delimiter: um delimitador de coluna de caractere único. Padrão: ",".
  • Columns: pode ser nulo, o número de colunas, uma lista de nomes de colunas ou um tipo de tabela. Se o número de colunas for menor do que o número encontrado na entrada, as colunas adicionais serão ignoradas. Se o número de colunas for maior do que o número encontrado na entrada, as colunas adicionais serão nulas. Quando não for especificado, o número de colunas será determinado pelo que é encontrado na entrada.
  • Encoding: a codificação de texto do arquivo. Padrão: 65001 (UTF-8).
  • CsvStyle: especifica como as aspas são tratadas.
    • CsvStyle.QuoteAfterDelimiter (padrão): as aspas em um campo são significativas apenas imediatamente depois do delimitador.
    • CsvStyle.QuoteAlways: as aspas em um campo são sempre significativas, independentemente do local em que aparecerem.
  • QuoteStyle: especifica como as quebras de linha entre aspas são tratadas.
    • QuoteStyle.Csv (padrão): as quebras de linha mencionadas entre aspas são tratadas como parte dos dados, e não como o fim da linha atual.
    • QuoteStyle.None: todas as quebras de linha são tratadas como o final da linha atual, mesmo quando elas ocorrem dentro de um valor entre aspas.
  • IncludeByteOrderMark: um valor lógico que indica se uma marca de ordem de byte (BOM) deve ser incluída no início da saída CSV. Quando definido como true, o BOM é escrito (por exemplo, UTF-8 BOM: 0xEF 0xBB 0xBF); quando definido como false, nenhum BOM é incluído. Essa opção é aplicável somente em cenários de saída. O padrão é false.
  • ExtraValues: consulte ExtraValues.Type para obter os valores suportados de ExtraValues.

Exemplo 1

Processa texto CSV com cabeçalhos de coluna.

Uso

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

Saída

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

Exemplo 2

Processe um texto CSV com vários caracteres delimitadores. Neste exemplo, o terceiro parâmetro especifica o padrão #|# de delimitador a ser usado em vez do padrão.

Uso

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

Saída

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