我正在尝试使用ExcelDataReader读取Ubuntu上的.xls文件。我正在使用VS#和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
但没有成功。
任何人都可以帮忙解决这个问题吗?
答案 0 :(得分:45)
我遇到了与.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))
{
}
}