日期:2014-05-18  浏览次数:21167 次

OLEDB 读取Excel sheet中文排序问题
C# code
 /// <summary>  
        /// 获取EXCEL的表 表名字列   
        /// </summary>  
        /// <param name="p_ExcelFile">Excel文件</param>  
        /// <returns>数据表</returns>  
        public static DataTable GetExcelTableName(string p_ExcelFile)
        {
            try
            {
                if (System.IO.File.Exists(p_ExcelFile))
                {
                    OleDbConnection _ExcelConn = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Extended Properties=\"Excel 8.0\";Data Source=" + p_ExcelFile + ";Extended Properties=\"Excel 8.0;HDR=YES;IMEX=1\"");
                    _ExcelConn.Open();
                    DataTable _Table = _ExcelConn.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, new object[] { null, null, null, "Table" });
                    _ExcelConn.Close();
                    return _Table;
                }
                return null;
            }
            catch
            {
                return null;
            }
        }

这个方法是得到用户所选Excel文件的所有sheet名称,问题如下:比如有3个sheet ,顺序一次是( 联系人$, sheet2$ ,sheet3$),通过上述方法返回的顺序却是(sheet2$,sheet3$,联系人$),个人理解应该是中文编码的问题,但是一般用户数据都会默认放在第一个sheet即 联系人$这个表中, 而且我读取Excel后需要在表格中默认呈现第一个sheet中的数据,所以这个顺序问题有什么办法解决吗?

------解决方案--------------------
那你就把分收回去