web-dev-qa-db-fra.com

VS Code C # - System.NotSupportedException: aucune donnée disponible pour le codage 1252

J'essaie d'utiliser ExcelDataReader pour lire un fichier .xls sur Ubuntu. J'utilise VS Code avec C #. Voici le code:

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

J'ai aussi essayé ceci:

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

Quand je cours, j'obtiens l'exception suivante:

Exception non gérée: System.NotSupportedException: aucune donnée n'est disponible pour le codage 1252. Pour plus d'informations sur la définition d'un codage personnalisé, voir la documentation de la méthode Encoding.RegisterProvider. sur System.Text.Encoding.GetEncoding (page de code Int32)

J'ai déjà installé le libmono-i18n-west4.0-cil (essayé aussi avec libmono-i18n4.0-all) car j'ai découvert que certaines personnes recommandaient cela, mais le problème persiste. Également installé le paquet System.Text.Encoding.CodePages sans succès.

Quelqu'un peut-il aider à résoudre ce problème?

23
Dalton Cézane

J'ai rencontré le même problème avec l'application .net Core. J'ai ajouté le paquet de nuget System.Text.Encoding.CodePages Et enregistré le fournisseur de codage avant ExcelReaderFactory.CreateReader(stream) qui a résolu le problème.

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))
      {
      }
}
61
Pervez Alam