VS Code C# - System.NotSupportedException:没有数据可用于编码1252

Dal*_*ane 30 c# xls exceldatareader visual-studio-code

我试图使用ExcelDataReader读取Ubuntu上的.xls文件.我正在使用VS#和C#.这是代码:

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

我也试过这个:

var reader = ExcelDataReader.ExcelReaderFactory.CreateBinaryReader(stream);
Run Code Online (Sandbox Code Playgroud)

当我运行时,我收到以下异常:

未处理的异常:System.NotSupportedException:没有可用于编码的数据1252.有关定义自定义编码的信息,请参阅Encoding.RegisterProvider方法的文档.在System.Text.Encoding.GetEncoding(Int32代码页)

我已经安装了libmono-i18n-west4.0-cil(也试过libmono-i18n4.0-all),因为我发现有些人推荐这个,但问题仍然存在.还安装了包System.Text.Encoding.CodePages没有成功.

谁能帮忙解决这个问题?

小智 82

我遇到了与.net Core应用程序相同的问题.我添加了System.Text.Encoding.CodePagesnuget包并注册了编码提供程序,之后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))
      {
      }
}
Run Code Online (Sandbox Code Playgroud)

  • 这也记录在官方页面上.https://github.com/ExcelDataReader/ExcelDataReader#important-note-on-net-core (4认同)