Добавьте метаданные в файл CSV, чтобы указать Excel, как он должен открываться - PullRequest
1 голос
/ 07 февраля 2020

Я экспортирую файлы CSV, текст заголовков столбцов которых изменяется с английского sh на французский в приложении Angular. Текст отображается нормально на английском языке sh, но не во французской версии, символы с акцентом не отображаются правильно при открытии в Excel. Он работал нормально при открытии в текстовом редакторе, таком как Notepad или Notepad ++.

Можно ли указать Excel или любому редактору поддержки CSV, например, Libre Office, как читать файл? Например, добавить некоторые встроенные метаданные в этот файл CSV перед экспортом для загрузки. Я проверил документацию в W3 C, чтобы найти только ресурс о встроенных метаданных, но не так много информации о похожем языке, символ которого в качестве разделителя ... et c

Пример из W3 C

EXAMPLE 7: Tab-separated file containing embedded metadata

# publisher City of Palo Alto
# updated 12/31/2010
#name GID on_street species trim_cycle  inventory_date
#datatype string  string  string  string  date:M/D/YYYY
  GID On Street Species Trim Cycle  Inventory Date
  1 ADDISON AV  Celtis australis  Large Tree Routine Prune  10/18/2010
  2 EMERSON ST  Liquidambar styraciflua Large Tree Routine Prune  6/2/2010

1 Ответ

2 голосов
/ 07 февраля 2020

Попробуйте добавить BOM (Byte Order Mark) в начало вашего csv, чтобы Excel правильно распознал кодировку символов:

let bom = "\uFEFF";
let csv = "a;b;c;?";
let blob = new Blob([`${bom}${csv}`], { type: 'text/csv;charset=utf-8;' });
// proceed with saving the blob ...

Я создал небольшой jsfiddle: https://jsfiddle.net/h6n1cpqf/

...