I am trying to use ExcelDataReader to read an .xls file on Ubuntu. I am using VS Code with C#. Here is the code:
var stream = File.Open(filePath, mode: FileMode.Open, access: FileAccess.Read);
var reader = ExcelReaderFactory.CreateReader(stream);
I also tried this:
var reader = ExcelDataReader.ExcelReaderFactory.CreateBinaryReader(stream);
When I run, I am getting the following exception:
Unhandled Exception: System.NotSupportedException: No data is available for encoding 1252. For information on defining a custom encoding, see the documentation for the Encoding.RegisterProvider method. at System.Text.Encoding.GetEncoding(Int32 codepage)
I already installed the libmono-i18n-west4.0-cil
(tried also with libmono-i18n4.0-all
) as I found out some people recommending this, but the problem persists. Also installed the package System.Text.Encoding.CodePages
without success.
Can anyone help to solve this?
I faced the same problem with .net Core application. I added the System.Text.Encoding.CodePages
nuget package and registered the encoding provider before ExcelReaderFactory.CreateReader(stream)
which resolved the issue.
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))
{
}
}