获取Excel表名

jq1219 2010-06-02 01:12:05
如何获取excel的表名啊?存储在本地文件夹下的一个excel文件,文件名知道,路径也知道,如何获取他的表名呢,大家帮帮忙啊
...全文
119 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
jq1219 2010-06-02
  • 打赏
  • 举报
回复
但是刚又碰见了一个很严重的问题,在对excel的第一个表名(一般都是sheet1)进行重命名(例如改成了“SH”)之后,table.Rows[0]已经不是SH了,而是sheet2,但我需要的是SH 啊,当然我用table.rows[Rows.Count-1]能够获取SH ,但是由的excel文件表名又没有经过重命名。所以没办法用一个固定的表达式去获取啊,不能用table.rows[0],也不能用table.rows[rows.count-1],这该如何是好啊
RainStarNetwork 2010-06-02
  • 打赏
  • 举报
回复
Table_Name是excel表格中的第一页的名字(sheet1)
jq1219 2010-06-02
  • 打赏
  • 举报
回复
我明白了,谢啦啊
jq1219 2010-06-02
  • 打赏
  • 举报
回复
能帮我注释一下吗,看不太懂啊
DataTable table = connection.GetOleDbSchemaTable(System.Data.OleDb.OleDbSchemaGuid.Tables, null);

OleDbSchemaGuid.Tables这个解释好像是返回在目录中定义的表,这又是什么意思呢
huminghua 2010-06-02
  • 打赏
  • 举报
回复
。。。。。。。。。。。
guyehanxinlei 2010-06-02
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 jq1219 的回复:]
回复2楼的:
tableName = table.Rows[0]["Table_Name"].ToString();
中的“Table_Name”是什么啊 ?是表名吗?但是表名是不知道的啊?
[/Quote]
是用于存储表名的字段名称
jq1219 2010-06-02
  • 打赏
  • 举报
回复
回复2楼的:
tableName = table.Rows[0]["Table_Name"].ToString();
中的“Table_Name”是什么啊 ?是表名吗?但是表名是不知道的啊?
RainStarNetwork 2010-06-02
  • 打赏
  • 举报
回复
/// <summary>
/// 获取Excel 表格的所有信息
/// </summary>
/// <param name="excelFilename"></param>
/// <returns></returns>
public static DataTable GetExcelTable(string excelFilename)
{
string connectionString = string.Format("Provider=Microsoft.Jet.OLEDB.4.0;Data Source={0};Jet OLEDB:Engine Type=35;Extended Properties=Excel 8.0;Persist Security Info=False",
excelFilename);
DataSet ds = new DataSet();
string tableName;
using (System.Data.OleDb.OleDbConnection connection = new System.Data.OleDb.OleDbConnection(connectionString))
{
connection.Open();
DataTable table = connection.GetOleDbSchemaTable(System.Data.OleDb.OleDbSchemaGuid.Tables, null);
tableName = table.Rows[0]["Table_Name"].ToString();
string strExcel = "select * from " + "[" + tableName + "]";
OleDbDataAdapter adapter = new OleDbDataAdapter(strExcel, connectionString);
adapter.Fill(ds, tableName);
connection.Close();
}
return ds.Tables[tableName];
}

excelFilename为excel的路径加文件名,如c:\abc.xls
wuyq11 2010-06-02
  • 打赏
  • 举报
回复
object missing=Missing.Value;
Excel.Application excel=new Excel.Application ( );
excel.Application.Workbooks.Open(FileName,missing,missing,missing,missing,
missing,missing,missing,missing,missing,missing, missing,missing, missing,missing);
excel.Visible = false;
for(int i=0 ;i<excel.Worksheets.Count;i++)
{
MessageBox.Show(((Excel.Worksheet)excel.Worksheets[i+1]).Name);
}

string str= string.Format(@ "Provider=Microsoft.Jet.OLEDB.4.0;Data Source={0};Extended Properties=Excel 8.0 ",path);
using(OleDbConnection conn = new OleDbConnection(ConnString))
{
conn.Open();
DataTable schemaTable=conn.GetOleDbSchemaTable(OleDbSchemaGuid.Tables,new object[] {null, null, null, "TABLE "});
conn.Close();
}

110,538

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧