OLEDB读取excel的工作表名

buqibushe 2012-04-27 08:54:38
我现在用网上的例子,可以读到excel中的内容,但有个问题:必须要知道表名才能读出来,但也许别人给我的.xls工作薄中的表名我可能不知道,或不是给定的Sheet1,有没有方式查到它有几个工作表及其表名,再按需去读内容呢?多谢!
...全文
655 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
吕津 2014-06-02
  • 打赏
  • 举报
回复
buqibushe 2012-04-28
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 的回复:]
引用 2 楼 的回复:
String connString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + excelFile + ";Extended Properties=Excel 8.0;";
objConn = new OleDbConnection(connString);
objConn.Open();
System.D……
[/Quote]

能说具体点吗?直接写个TABLE_NAME?还是TABLE_NAME只是一个伪代码?实际要填入真正的表名?
buqibushe 2012-04-28
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 的回复:]
C# code

private void button1_Click(object sender, EventArgs e)
{
OpenFileDialog dialog = new OpenFileDialog();//建立OpenFileDialog
dialog.Filter = "save files (*.xl……
[/Quote]

这个代码跟我的问题没什么关系
buqibushe 2012-04-28
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 的回复:]
String connString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + excelFile + ";Extended Properties=Excel 8.0;";
objConn = new OleDbConnection(connString);
objConn.Open();
System.Data.DataTable……
[/Quote]

我看了网上的例子,很多都有这个TABLE_NAME,但我以为它只是一个伪代码,实际要填入表名,难道直接用TABLE_NAME就可以编译,并可读到表名?
山东蓝鸟贵薪 2012-04-28
  • 打赏
  • 举报
回复
好像EXCEL中的工作表名,必须指定吧,
就像MSSQL数据库那样,你必须知道表及字段名,才能进行查询工作的
飞吧222 2012-04-28
  • 打赏
  • 举报
回复
private void button1_Click(object sender, EventArgs e)
{
OpenFileDialog dialog = new OpenFileDialog();//建立OpenFileDialog
dialog.Filter = "save files (*.xls)|*.xls|All files (*.*)|*.*";//设定dialog,过滤档案
dialog.InitialDirectory = "C:";//设定起始目录为C盘
dialog.InitialDirectory = Application.StartupPath;//设置起始目录为程式目录
dialog.Title = "Select a save file";//设定dialog的Title
if (dialog.ShowDialog() == DialogResult.OK)//加入使用者按下ok键,则将档案名显示在TextBox1上
{
TextBox1.Text = dialog.FileName;// selell为图中浏览按钮
}

}
飞吧222 2012-04-28
  • 打赏
  • 举报
回复
private void button1_Click(object sender, EventArgs e)
{
OpenFileDialog dialog = new OpenFileDialog();//建立OpenFileDialog
dialog.Filter = "save files (*.xls)|*.xls|All files (*.*)|*.*";//设定dialog,过滤档案
dialog.InitialDirectory = "C:";//设定起始目录为C盘
dialog.InitialDirectory = Application.StartupPath;//设置起始目录为程式目录
dialog.Title = "Select a save file";//设定dialog的Title
if (dialog.ShowDialog() == DialogResult.OK)//加入使用者按下ok键,则将档案名显示在TextBox1上
{
TextBox1.Text = dialog.FileName;// selell为图中浏览按钮
}

}
orochiheart 2012-04-27
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 的回复:]
String connString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + excelFile + ";Extended Properties=Excel 8.0;";
objConn = new OleDbConnection(connString);
objConn.Open();
System.Data.DataTable……
[/Quote]
+1 是不是没有指定的表名默认叫TABLE_NAME?
孟子E章 2012-04-27
  • 打赏
  • 举报
回复
String connString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + excelFile + ";Extended Properties=Excel 8.0;";
objConn = new OleDbConnection(connString);
objConn.Open();
System.Data.DataTable dt = objConn.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, null);

foreach (DataRow row in dt.Rows)
{
row["TABLE_NAME"].ToString(); //就是

}
buqibushe 2012-04-27
  • 打赏
  • 举报
回复
比如下一段 string source = "Provider=Microsoft.Ace.OLEDB.12.0;Data Source='D://test.xls';Extended Properties='Excel 12.0;HDR=yes;IMEX=1'";
OleDbConnection conn = new OleDbConnection(source);

try
{
conn.Open();

string select = "SELECT * FROM [Sheet1$]";
在查询命令里必须要有表名...

110,535

社区成员

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

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

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