VS Code C# - System.NotSupportedException: нет данных для кодировки 1252

Я пытаюсь использовать ExcelDataReader для чтения файла.xls в Ubuntu. Я использую VS Code с C#. Вот код:

var stream = File.Open(filePath, mode: FileMode.Open, access: FileAccess.Read);
var reader = ExcelReaderFactory.CreateReader(stream);

Я также попробовал это:

var reader = ExcelDataReader.ExcelReaderFactory.CreateBinaryReader(stream);

Когда я бегу, я получаю следующее исключение:

Необработанное исключение: System.NotSupportedException: нет данных, доступных для кодировки 1252. Информацию об определении пользовательской кодировки см. В документации по методу Encoding.RegisterProvider. в System.Text.Encoding.GetEncoding(кодовая страница Int32)

Я уже установил libmono-i18n-west4.0-cil (пробовал также с libmono-i18n4.0-all), как я узнал, некоторые люди рекомендуют это, но проблема сохраняется. Также установлен пакет System.Text.Encoding.CodePages безуспешно.

Кто-нибудь может помочь решить это?

1 ответ

Решение

Я столкнулся с той же проблемой с приложением.net Core. Я добавил System.Text.Encoding.CodePages пакет nuget и ранее зарегистрирован провайдер кодирования ExcelReaderFactory.CreateReader(stream) который решил проблему.

System.Text.Encoding.RegisterProvider(System.Text.CodePagesEncodingProvider.Instance);
//open file and returns as Stream
using (var stream = File.Open(fileName, FileMode.Open, FileAccess.Read))
{
      using (var reader = ExcelReaderFactory.CreateReader(stream))
      {
      }
}
Другие вопросы по тегам