Формат CSV
Существует стандарт IETF RFC 4180, который определяет, как генерировать файл CSV и что он может и не может содержать.Чтобы ответить на ваш вопрос напрямую, нет способа добавить «заголовок» в файл CSV.Чтобы подвести итог спецификации, ваш файл должен иметь следующее
- Каждая строка данных разделяет данные на столбцы с помощью разделителя запятых (val1, val2, val3)
- Каждая строказаканчивается и начинается новый с использованием возврата каретки (val1, val2, val3 CRLF)
- Последняя строка в файле не содержит возврата каретки
- Можно добавить необязательную строку заголовкатак же, как и обычная строка данных, и будет устанавливаться путем включения параметра заголовка
. Как вы можете видеть, стандартного способа установки «заголовка» не существует.Однако, если вы ссылаетесь на «заголовок» как на «заголовок», вы можете добавить его, используя следующие символы:
$file = import-csv $outfile -Header a , b , c | export-csv $file
Где a, b, c - ваши заголовки.
Формат данных
В итоге ваши данные должны выглядеть следующим образом
Header1, Header2, Header3 CRLF
value11, value12, value13 CRLF
value21, value22, value23 CRLF
value31, value32, value32
Строка заголовка указывается как нечто отдельное от строк данных, включая следующий параметр mimetype
text/csv; header=present
В отличие от
text/csv; header=absent
Как вы можете сказать, единственными ограничениями являются параметр mimetype, разделитель и возврат каретки.Данные поля заключаются в двойные кавычки, если данные в этом поле содержат разрыв строки, запятую или двойные кавычки.Чтобы разделить Mimetype немного больше, тип мультимедиа - текст, подтип - csv и два необязательных параметра: header и charset.
Поскольку в спецификации явно указаны специальные / зарезервированные символы, а также необязательные параметрыЯ чувствую себя в безопасности, говоря, что нет способа добавить строку заголовка.
Дополнительная информация
Поскольку в вашем первоначальном посте говорилось о "заголовке", который не определен в спецификации, я приложил все усилия, чтобы ответить на ваш вопрос в меру своих возможностей.CSV Format - это конкретная реализация стандарта Tabluar Data.Существует несколько различных форматов табличных данных, и такие организации, как W3C и OKI, создали стандартизацию, включающую больше функциональных возможностей, чем стандарт RFC 4180.
Возможно, вы захотите взглянуть на схему CSV, которая, как мне кажется, является частью стандарта OKI.Опять же, все это основано на стандартах, поэтому оно действительно зависит от того, что потребляет и анализирует этот файл CSV.
Если у вас есть дополнительные вопросы, не стесняйтесь добавлять комментарии, и я сделаю все возможное, чтобы ответить.
Ссылки
Следующие ссылки приведут вас к официальной спецификации для трех табличных форматов данных.В случае сомнений я бы определенно использовал стандарт IETF, поскольку он, безусловно, является наиболее распространенным, однако я включил W3C и спецификацию OKI на случай, если ваше приложение-потребитель его поддерживает
- https://tools.ietf.org/html/rfc4180
- https://frictionlessdata.io/specs/tabular-data-package/
- https://www.w3.org/TR/tabular-data-model/