如何从特定编码的Excel中读取?

时间:2012-11-18 01:42:11

标签: c# excel encoding

我从excel文件中复制了列名称的txt文件。我通过以下方式从txt文件中读取:

CultureInfo cultureHU;
Encoding encodingHU;
cultureHU = CultureInfo.GetCultureInfo("hu-HU");
encodingHU = Encoding.GetEncoding(cultureHU.TextInfo.ANSICodePage);
using (StreamReader sr = new StreamReader("settings.txt", encodingHU, true))
{
...
}

如何从具有相同编码的Excel文件中读取?如果我使用默认方式(xlRange.Cells [1,i] .Value.ToString()),那么我得到错误的价值观:

  • 在excel和txt文件中我有:“Szerzõdõ”
  • encodingHU 编码的文本文件中读取我得到:“Szerződő”(这是正确的格式)
  • 从C#中读取excel,我得到:“Szerzõdõ”

2 个答案:

答案 0 :(得分:2)

您可以将错误的字符串转换为正确的编码,如下所示:

Console.WriteLine(encodingHU.GetString(Encoding.Default.GetBytes(str)));

答案 1 :(得分:0)

我使用了 ExcelDataReader。我需要编码 1250

ExcelReaderConfiguration conf = new ExcelReaderConfiguration();
conf.FallbackEncoding = Encoding.GetEncoding(1250);

using (IExcelDataReader reader = ExcelReaderFactory.CreateReader(stream, conf))
{
...
}