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 см. в ExtraValues.Type.
  • encoding указывает тип кодирования текста.

Если запись указана columns для (и , и extraValuesdelimiterencoding имеет значение NULL), можно указать следующие поля записей:

  • Delimiter: разделитель столбцов. По умолчанию: ",".
  • Columns: может иметь значение NULL, количество столбцов, список имен столбцов или тип таблицы. Если число столбцов меньше числа, найденного во входных данных, дополнительные столбцы будут игнорироваться. Если число столбцов выше числа, найденного во входных данных, дополнительные столбцы будут иметь значение NULL. Если значение не указано, количество столбцов определяется тем, что находится в входных данных.
  • Encoding: кодировка текста файла. По умолчанию: 65001 (UTF-8).
  • CsvStyle: указывает, как обрабатываются кавычки.
    • CsvStyle.QuoteAfterDelimiter (по умолчанию): кавычки в поле учитываются только сразу после разделителя.
    • CsvStyle.QuoteAlways: кавычки в поле всегда учитываются независимо от того, где они находятся.
  • QuoteStyle: указывает, как обрабатываются разрывы строк с кавычками.
    • QuoteStyle.Csv (по умолчанию): разрывы строк кавычки обрабатываются как часть данных, а не как конец текущей строки.
    • QuoteStyle.None: все разрывы строк обрабатываются как конец текущей строки, даже если они происходят внутри кавычки.

Пример 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"]