web-dev-qa-db-ja.com

VS Code C#-System.NotSupportedException:1252のエンコードに使用できるデータはありません

UbuntuでExcelDataReaderを使用して.xlsファイルを読み取ろうとしています。 C#でVS Codeを使用しています。コードは次のとおりです。

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 codepage)で

一部の人々がこれを推奨していることがわかったので、すでにlibmono-i18n-west4.0-cillibmono-i18n4.0-allでも試してみました)をインストールしましたが、問題は解決しません。パッケージSystem.Text.Encoding.CodePagesも正常にインストールしました。

誰でもこれを解決するのに役立ちますか?

23
Dalton Cézane

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