excel 表中有三个工作表:客户关系,sheet2,sheet3,我只取第一个工作表名,而下面程序返回的是sheet2,如果把“客户关系”改成英文,确又以能认识第一个工作表。请教高手如何获取第一个中文工作表名。谢谢 public String getExcelFileTable(string Path)
{
string strConn = "Provider=Microsoft.Jet.OLEDB.4.0;" + "Data Source=" + Path + ";" + "Extended Properties=Excel 8.0;";
System.Data.OleDb.OleDbConnection conn = new System.Data.OleDb.OleDbConnection(strConn);
conn.Open();
System.Data.DataTable table = conn.GetOleDbSchemaTable(System.Data.OleDb.OleDbSchemaGuid.Tables, null);
//DataTable table = conn.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, new object[] { null, null, null, "TABLE " });
string TableName = table.Rows[0]["TABLE_NAME"].ToString();
TableName = TableName.Substring(0, TableName.Length - 1);
TableName = HttpUtility.UrlEncode(TableName, System.Text.Encoding.GetEncoding("utf-8"));
Response.Write("<script language='javascript'>alert('" + TableName + "')</script>");
conn.Close();
return TableName;
}
{
string strConn = "Provider=Microsoft.Jet.OLEDB.4.0;" + "Data Source=" + Path + ";" + "Extended Properties=Excel 8.0;";
System.Data.OleDb.OleDbConnection conn = new System.Data.OleDb.OleDbConnection(strConn);
conn.Open();
System.Data.DataTable table = conn.GetOleDbSchemaTable(System.Data.OleDb.OleDbSchemaGuid.Tables, null);
//DataTable table = conn.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, new object[] { null, null, null, "TABLE " });
string TableName = table.Rows[0]["TABLE_NAME"].ToString();
TableName = TableName.Substring(0, TableName.Length - 1);
TableName = HttpUtility.UrlEncode(TableName, System.Text.Encoding.GetEncoding("utf-8"));
Response.Write("<script language='javascript'>alert('" + TableName + "')</script>");
conn.Close();
return TableName;
}
在com中把Excel的dll引入,可以直接操作Excel的类,用起来很方便
你
table.Rows[0]["TABLE_NAME"].ToString();
这样取就是错误的了
public String getExcelFileTable()
{
OleDbConnection oleConn = new OleDbConnection();
oleConn.ConnectionString = "Provider=Microsoft.Jet.Oledb.4.0;data source=D:\\2.xls;Extended Properties=Excel 8.0;";
oleConn.Open();
DataTable dtOle = oleConn.GetSchema("Tables");
DataTableReader dtReader = new DataTableReader(dtOle); while (dtReader.Read())
{
Response.Write(dtReader["Table_Name"]);
}
dtReader = null;
dtOle = null;
oleConn.Close();
return "";
}