Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C#从excel读取数据时文本格式错误_C#_Excel_Winforms - Fatal编程技术网

C#从excel读取数据时文本格式错误

C#从excel读取数据时文本格式错误,c#,excel,winforms,C#,Excel,Winforms,我有一个excel文件,其中包含如下测试数据: 哈斯ị 明斯ắng 哈普希托 我从excel文件中读取的数据如下: OpenFileDialog openFileDialog = new OpenFileDialog(); if (openFileDialog.ShowDialog() == DialogResult.OK) { Excel.Application excelApp = new Excel.Application();

我有一个excel文件,其中包含如下测试数据: 哈斯ị 明斯ắng 哈普希托

我从excel文件中读取的数据如下:

 OpenFileDialog openFileDialog = new OpenFileDialog();
        if (openFileDialog.ShowDialog() == DialogResult.OK)
        {
            Excel.Application excelApp = new Excel.Application();
            Excel.Workbook excelWorkbook = excelApp.Workbooks.Open(openFileDialog.FileName);
            foreach (Excel.Worksheet sheet in excelWorkbook.Worksheets)
            {
                Excel.Range range = sheet.UsedRange;
                object[,] values = (object[,])range.Value2;

                for (int i = 1; i <= values.GetLength(0); i++)
                {
                    Person p = new Person();
                    for (int j = 1; j <= values.GetLength(1); j++)
                    {
                            if (null != values[i, j]) {
                                string s = values[i, j].ToString();
                            Console.WriteLine("xxxx values[" + i + "][" + j + "] = " + s);

                            }
                    }

                }
            }
        }
OpenFileDialog OpenFileDialog=新建OpenFileDialog();
if(openFileDialog.ShowDialog()==DialogResult.OK)
{
Excel.Application excelApp=新的Excel.Application();
Excel.工作簿excelWorkbook=excelApp.Workbooks.Open(openFileDialog.FileName);
foreach(Excel工作簿中的Excel.Worksheet工作表)
{
Excel.Range范围=sheet.UsedRange;
对象[,]值=(对象[,])范围。值2;
对于(int i=1;i

excel电子表格中的文本编码似乎不同。请尝试使用相关编码。

在将字符串输出到控制台之前,需要先设置控制台编码

Console.OutputEncoding = System.Text.Encoding.UTF8;
在您的代码中,一个好的位置应该就在这个代码片段之后:

Person p = new Person();
不带
Console.outpunecoding=System.Text.Encoding.UTF8

使用
Console.outpunecoding=System.Text.Encoding.UTF8
Encoding enc=Encoding.GetEncoding(“iso-8859-1”);
这是对西欧字母的编码

Person p = new Person();