/// <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中的数据,所以这个顺序问题有什么办法解决吗?
/// 获取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中的数据,所以这个顺序问题有什么办法解决吗?
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货