c#对EXCEL工作表的操作

xiepengyu 2008-07-17 09:53:21
我用"select * from [" + "Sheet1" + "$]" 来做为对EXCEL工作表的操作。但现在问题来了,客户想随时改变工作表的名字,比如他想用时间来命名工作表。如:用08.07.17代替“Sheet1”,那么我现在应该怎么办呢?怎么样获取excel文件的第一张工作表的名字,然后取代“Sheet1”呢?
...全文
180 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
happyboxman 2008-07-17
  • 打赏
  • 举报
回复
如下这样就可以了。。。。

不用根据表名,而是根据数组获取
命名空间: Microsoft.Office.Tools.Excel
程序集: Microsoft.Office.Tools.Excel(在 Microsoft.Office.Tools.Excel.dll 中)
下面的代码示例使用 Worksheets 属性使当前工作簿中的第二个工作表不可见。

private void HideSecondWorksheet()
{
Excel.Worksheet worksheet = (Excel.Worksheet)this.Worksheets[2];
worksheet.Visible = Excel.XlSheetVisibility.xlSheetHidden;
}


特别 2008-07-17
  • 打赏
  • 举报
回复
为什么我还真的不知道,不过你就用这个名字肯定就对了,要不然你用OLEDB该问EXCEL工作表,还是要在表名后面加上$的。
happyboxman 2008-07-17
  • 打赏
  • 举报
回复
附加美元符号 ($) 的 Excel 对象名称代表工作表(例如,Sheet1$),而没有美元符号的普通对象名称代表 Excel 指定的范围。
xiepengyu 2008-07-17
  • 打赏
  • 举报
回复
dt.Rows[0][2].ToString().Trim();得到"Sheet1$",为什么会有$ 的呢?
xiepengyu 2008-07-17
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 sdfkfkd 的回复:]
不会吧,我是在VS2005中测试的啊
[/Quote]
好。我已经看到Table_Name列下的“Sheet1$”,我想得到“Sheet”,应该怎么做?
特别 2008-07-17
  • 打赏
  • 举报
回复
不会吧,我是在VS2005中测试的啊
xiepengyu 2008-07-17
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 sdfkfkd 的回复:]
读取EXCEL表信息
C# codestringstrConn="Provider=Microsoft.Jet.OLEDB.4.0;Data Source='f:\\2222.xls';Extended Properties=Excel 8.0";
OleDbConnection conn=newOleDbConnection();
conn.ConnectionString=strConn;
conn.Open();

DataTable dt=conn.GetOleDbSchemaTable(OleDbSchemaGuid.Tables,null);
conn.Close();
dataGridView1.DataSource=…
[/Quote]

我没有看到Table_Name,也没有看到sheet名字啊?
特别 2008-07-17
  • 打赏
  • 举报
回复
读取EXCEL表信息

string strConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source='f:\\2222.xls';Extended Properties=Excel 8.0";
OleDbConnection conn = new OleDbConnection();
conn.ConnectionString = strConn;
conn.Open();

DataTable dt = conn.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, null);
conn.Close();
dataGridView1.DataSource = dt;
dataGridView1.Refresh();

Table_Name列为表名
xiepengyu 2008-07-17
  • 打赏
  • 举报
回复
给个例子,谢谢
nattystyle 2008-07-17
  • 打赏
  • 举报
回复
楼上正解
skison 2008-07-17
  • 打赏
  • 举报
回复
先获取所有Sheets,然后访问Sheets[0],

110,825

社区成员

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

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

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