Поделиться через


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