日期:2014-05-17  浏览次数:21017 次

C#获取excel表名是乱码(中文部分变成问号)。
代码是:
 using (OleDbConnection conn = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Extended Properties=\"Excel 8.0\";Data Source=" + excelFileName))
                    {
                        conn.Open();
                        DataTable dt = conn.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, null);
                        for (int i = 0; i < dt.Rows.Count; i++)
                        {

                            string mc = dt.Rows[i][2].ToString().Trim();
                           
                              
                        }

                        conn.Close();
                    }

我的表名是:“1样式二”获得的表名却是:1???   ,但是我的马excel打开再保存一次他又不会出现乱码了。
麻烦大家帮个忙,谢谢了。。。

------解决方案--------------------
我用下面这种方式取,是正常的,你可以试试:
                //获取EXCEL表中的SHEET名称
                DataTable dtExcelSchema = conn.GetOleDbSchemaTable(OleDbSchemaGuid.Tables,