EPPLUS сохранение файла XLSX при использовании кодировки UTF-8 без спецификации - PullRequest
0 голосов
/ 21 октября 2018

Я использую EPPlus (4.5.2.1), и у меня есть вопрос о кодировке XLSX и его основных XML-частях.

Я должен использовать код C # внутри проекта, который распаковывает файл XLSXи затем чтение файла «xl / workbook.xml» с помощью метода LoadXML.

XmlDocument workbook = new XmlDocument();         
workbook.LoadXml(UnzipAndGetFile("xl/workbook.xml"));

Этот код работает нормально с файлом XLSX, созданным в Microsoft Excel.

Однако, когда я читаюфайл, созданный с помощью библиотеки EPPlus Я получил следующее исключение:

System.Xml.XmlEception: данные на корневом уровне недействительны.Строка 1, позиция 1.

После некоторых исследований я обнаружил, что файлы XML, созданные библиотекой EPPlus, используют UTF-8 с кодировкой спецификации.Напротив, файл, созданный из Excel, кодируется с помощью UTF-8 без BOM.

Короче говоря, BOM вызывает исключение.

Я мог проверить иудалите спецификацию, если я нашел ее в файлах XML, но у меня есть следующий вопрос:

Вопросы:

  1. Можно ли указать кодировку UTF-8 при сохранениифайл XLSX с EPPlus?(то есть: UTF-8 без спецификации или UTF-8 с спецификацией)

  2. Почему EPPlus использует UTF-8 + BOM, а Excel использует UTF-8 без спецификации?

  3. Определено ли в стандарте OOXML (Office Open XML) использование UTF-8 + BOM?

...