[C#] 纯文本查看 复制代码
/**/
/// <summary>
/// 返回Excel数据源
/// </summary>
/// <param name="filename">文件路径</param>
/// <param name="TSql">TSql</param>
/// <returns>DataSet</returns>
public static DataSet ExcelToDataSet(string filename, string TSql)
{
DataSet ds;
string strCon = "Provider=Microsoft.Jet.OLEDB.4.0;Extended Properties=Excel 8.0;data source=" + filename;
OleDbConnection myConn = new OleDbConnection(strCon);
string strCom = TSql;
myConn.Open();
OleDbDataAdapter myCommand = new OleDbDataAdapter(strCom, myConn);
ds = new DataSet();
myCommand.Fill(ds);
myConn.Close();
return ds;
}
[C#] 纯文本查看 复制代码
/设置T_Sql
string TSql = "SELECT * FROM [sheel1$]";
//读取数据
DataTable table = ExcelToDataSet(fullPath, TSql).Tables[0];[/code]
在这种情况下大家一般都会碰到这样的问题
如果是动态导入很多Excel表格的时候,他们的表名可能不一样,总不能每次都输入一次表名吧,其它不需要的
只要用下面的方法就可以得到表名
请看代码
[code=csharp] /// <summary>
/// 动态取Excel表名
/// </summary>
/// <param name="fullPath">文件路径</param>
/// <returns></returns>
public static string GetExcelFirstTableName(string fullPath)
{
string tableName = null;
if (File.Exists(fullPath))
{
using (OleDbConnection conn = new OleDbConnection("Provider=Microsoft.Jet." +
"OLEDB.4.0;Extended Properties=Excel 8.0;Data Source=" + fullPath))
{
conn.Open();
tableName = conn.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, null).Rows[0][2].ToString().Trim();
}
}
return tableName;
}