C#读取 Excel如果excel中的表名不是默认的sheet1,shee2就取不到值了 怎么改
publicstaticDataTableExcelToDataTable(stringstrExcelFileName){//建立连接Excel的数据表stringst...
public static DataTable ExcelToDataTable(string strExcelFileName)
{
//建立连接Excel的数据表
string strConn = "Provider=Microsoft.Jet.OLEDB.4.0;" + "Data Source=" + strExcelFileName + ";" + "Extended Properties=Excel 5.0;";
OleDbConnection Excel_conn = new OleDbConnection(strConn);
//打开Excel连接
Excel_conn.Open();
string SheetName = "";
DataTable dtExcelSchema = Excel_conn.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, new object[] { null, null, null, "TABLE" });
//取出第一个工作表我名称
SheetName = dtExcelSchema.Rows[0]["TABLE_NAME"].ToString();
Excel_conn.Close();
string strExcel = string.Format("select * from [{0}]", SheetName);
DataSet ds = new DataSet();
using (OleDbConnection conn = new OleDbConnection(strConn))
{
conn.Open();
OleDbDataAdapter adapter = new OleDbDataAdapter(strExcel, strConn);
adapter.Fill(ds, SheetName);
conn.Close();
}
return ds.Tables[SheetName];
}
如果Execl表的第一个表名是 sheet1就能找到 如果改为 TT 之类的 就会取到sheet2
怎么改 展开
{
//建立连接Excel的数据表
string strConn = "Provider=Microsoft.Jet.OLEDB.4.0;" + "Data Source=" + strExcelFileName + ";" + "Extended Properties=Excel 5.0;";
OleDbConnection Excel_conn = new OleDbConnection(strConn);
//打开Excel连接
Excel_conn.Open();
string SheetName = "";
DataTable dtExcelSchema = Excel_conn.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, new object[] { null, null, null, "TABLE" });
//取出第一个工作表我名称
SheetName = dtExcelSchema.Rows[0]["TABLE_NAME"].ToString();
Excel_conn.Close();
string strExcel = string.Format("select * from [{0}]", SheetName);
DataSet ds = new DataSet();
using (OleDbConnection conn = new OleDbConnection(strConn))
{
conn.Open();
OleDbDataAdapter adapter = new OleDbDataAdapter(strExcel, strConn);
adapter.Fill(ds, SheetName);
conn.Close();
}
return ds.Tables[SheetName];
}
如果Execl表的第一个表名是 sheet1就能找到 如果改为 TT 之类的 就会取到sheet2
怎么改 展开
2个回答
展开全部
string filepath = “c:/test.xls”;
string strcon = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + filepath + ";Extended Properties='唤和乎Excel 8.0;HDR=NO;IMEX=1'";
OleDbConnection MyConn = new OleDbConnection(strcon);
MyConn.Open();
string sheetname = "";
System.Data.DataTable dt = MyConn.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, new object[] { null, null, null, "TABLE" });
for (int i = 0; i < dt.Rows.Count; i++)
{//循环取得所有表名
sheetname = dt.Rows[i]["棚简TABLE_NAME"].ToString();
sheetnamelist.Add(sheetname);
}
string CurrSheet = sheetnamelist[0].ToString();//和悉取得第一个表名
具体可能参考我空 间的一篇文章 《C#读写Excel文件》
string strcon = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + filepath + ";Extended Properties='唤和乎Excel 8.0;HDR=NO;IMEX=1'";
OleDbConnection MyConn = new OleDbConnection(strcon);
MyConn.Open();
string sheetname = "";
System.Data.DataTable dt = MyConn.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, new object[] { null, null, null, "TABLE" });
for (int i = 0; i < dt.Rows.Count; i++)
{//循环取得所有表名
sheetname = dt.Rows[i]["棚简TABLE_NAME"].ToString();
sheetnamelist.Add(sheetname);
}
string CurrSheet = sheetnamelist[0].ToString();//和悉取得第一个表名
具体可能参考我空 间的一篇文章 《C#读写Excel文件》
更多追问追答
追问
但是 我改了sheet1名字 取到的就是sheet2了
追答
可以用我所写的方法来取表名
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |