78 votes

VS Code C# - Système.NotSupportedException: Aucune donnée n'est disponible pour l'encodage 1252

Je suis en train d'utiliser ExcelDataReader pour lire un .fichier xls sur Ubuntu. Je suis avec VS Code 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 le lance, j'obtiens l'exception suivante:

Exception Non Gérée: System.NotSupportedException: Aucune donnée n'est disponible pour l'encodage de 1252. Pour plus d'informations sur la définition d'un codage personnalisé, consultez la documentation de l'Encodage.RegisterProvider méthode. au Système.Texte.L'encodage.GetEncoding(Int32 page de codes)

J'ai déjà installé l' libmono-i18n-west4.0-cil (essayé aussi avec libmono-i18n4.0-all) que j'ai trouvé quelques personnes qui recommandent cette, mais le problème persiste. Également installé le package System.Text.Encoding.CodePages sans succès.

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

210voto

Pervez Alam Points 861

J'ai connu le même problème avec .net application de Base. J'ai ajouté de l' System.Text.Encoding.CodePages de package nuget et enregistrés l'encodage fournisseur avant d' ExcelReaderFactory.CreateReader(stream) ce 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))
      {
      }
}

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X