Csv.Document

Синтаксис

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

О программе

Возвращает содержимое CSV-документа в виде таблицы.

  • columns может иметь значение NULL, количество столбцов, список имен столбцов, тип таблицы или запись параметров.
  • delimiter может быть одним символом, списком символов или значением "", которое указывает, что строки должны быть разделены с помощью последовательных пробелов. По умолчанию: ",".
  • Сведения о поддерживаемых значениях ExtraValues.Typeсм. в extraValues.
  • encoding указывает тип кодирования текста.

Если запись указана для columnsdelimiter, extraValues и encoding имеют значение NULL), можно указать следующие поля записи:

  • Delimiter: разделитель столбцов из одного символа. По умолчанию: ",".
  • Columns: может иметь значение NULL, количество столбцов, список имен столбцов или тип таблицы. Если число столбцов меньше числа, найденного во входных данных, дополнительные столбцы будут игнорироваться. Если число столбцов выше числа, найденного во входных данных, дополнительные столбцы будут иметь значение NULL. Если значение не указано, количество столбцов определяется тем, что находится в входных данных.
  • Encoding: кодировка текста файла. По умолчанию: 65001 (UTF-8).
  • CsvStyle: указывает, как обрабатываются кавычки.
    • CsvStyle.QuoteAfterDelimiter (по умолчанию): кавычки в поле имеют большое значение только после разделителя.
    • CsvStyle.QuoteAlways: кавычки в поле всегда важны, независимо от того, где они отображаются.
  • QuoteStyle: указывает, как обрабатываются разрывы строк с кавычками.
    • QuoteStyle.Csv (по умолчанию): разрывы строк кавычки обрабатываются как часть данных, а не как конец текущей строки.
    • QuoteStyle.None: все разрывы строк рассматриваются как конец текущей строки, даже если они происходят внутри кавычки.
  • IncludeByteOrderMark: логическое значение, указывающее, следует ли включать метку порядка байтов (BOM) в начале выходных данных CSV. Если задано значение true, BOM записывается (например, UTF-8 BOM: 0xEF 0xBB 0xBF); если задано значение false, BOM не включается. Этот параметр применим только в выходных сценариях. По умолчанию — false.
  • ExtraValues: обратитесь к ExtraValues.Type поддерживаемым значениям ExtraValues.

Пример 1

Обработка текста CSV с заголовками столбцов.

Использование

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

Выходные данные

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

Пример 2

Обработка текста CSV с несколькими символами разделителя. В этом примере третий параметр задает шаблон #|# разделителя, используемый вместо стандартного.

Использование

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

Выходные данные

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