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;
}
13 个解决方案
#1
可以不用Ole方式
在com中把Excel的dll引入,可以直接操作Excel的类,用起来很方便
在com中把Excel的dll引入,可以直接操作Excel的类,用起来很方便
#2
for(int i=0;i<table.Rows.Count;i++)
{
string TableName = table.Rows[i]["TABLE_NAME"].ToString();
//打印TableName
}
#3
可有代码实例,万分感谢
#4
中文在里面是有的。
#5
中文在里面,说明它不是第一个啊,
你
table.Rows[0]["TABLE_NAME"].ToString();
这样取就是错误的了
你
table.Rows[0]["TABLE_NAME"].ToString();
这样取就是错误的了
#6
比如:表中是 英国 中国 sheet3 读出来后是 Sheet3$英国$中国$
#7
比如:表中是 英国 中国 sheet3 读出来后是 Sheet3$英国$中国$。而我要取的数据是英国里面的。请问要如何取。谢谢
#8
比如:表中是 英国 中国 sheet3 读出来后是 Sheet3$英国$中国$。而我要取的数据是英国里面的。请问要如何取。谢谢
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 "";
}
#9
Spread.NET 中文版
#10
[Sheet3$英国$中国$]
#11
吧sheet2和sheet3删掉吧,好弄点
#12
这个方法想过。不过有时候后几个SHEET中会保存有用数据。重新建立一个EXCEL再复制第一个SHEET的数据有点麻烦。所以才想解决这个问题。
#13
请问楼主,现在这个问题是怎么解决的?很想知道
#1
可以不用Ole方式
在com中把Excel的dll引入,可以直接操作Excel的类,用起来很方便
在com中把Excel的dll引入,可以直接操作Excel的类,用起来很方便
#2
for(int i=0;i<table.Rows.Count;i++)
{
string TableName = table.Rows[i]["TABLE_NAME"].ToString();
//打印TableName
}
#3
可有代码实例,万分感谢
#4
中文在里面是有的。
#5
中文在里面,说明它不是第一个啊,
你
table.Rows[0]["TABLE_NAME"].ToString();
这样取就是错误的了
你
table.Rows[0]["TABLE_NAME"].ToString();
这样取就是错误的了
#6
比如:表中是 英国 中国 sheet3 读出来后是 Sheet3$英国$中国$
#7
比如:表中是 英国 中国 sheet3 读出来后是 Sheet3$英国$中国$。而我要取的数据是英国里面的。请问要如何取。谢谢
#8
比如:表中是 英国 中国 sheet3 读出来后是 Sheet3$英国$中国$。而我要取的数据是英国里面的。请问要如何取。谢谢
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 "";
}
#9
Spread.NET 中文版
#10
[Sheet3$英国$中国$]
#11
吧sheet2和sheet3删掉吧,好弄点
#12
这个方法想过。不过有时候后几个SHEET中会保存有用数据。重新建立一个EXCEL再复制第一个SHEET的数据有点麻烦。所以才想解决这个问题。
#13
请问楼主,现在这个问题是怎么解决的?很想知道