隐藏的工作表,怎么取得?

hmc108 2009-07-08 04:25:29
使用ODBC的方法读取Excel的时候,发现隐藏的工作表,没有被读取.求教,该怎么做!

代码如下:
string strConn = "Provider=Microsoft.Jet.Oledb.4.0;Data Source=" + Path + ";Extended Properties='Excel 8.0;HDR=NO;IMEX=1;'";
  OleDbConnection conn = new OleDbConnection(strConn);
      DataSet ds = new DataSet();

conn.Open();
try
{
       //返回Excel的架构,包括各个sheet表的名称,类型,创建时间和修改时间等 
       DataTable dtSheetName = conn.GetOleDbSchemaTable(OleDbSchemaGuid.Tables,new object[] {null,null,null,"TABLE"});

       //包含excel中表名的字符串数组
       string[] strTableNames = new string[dtSheetName.Rows.Count];
       for(int k=0;k<dtSheetName.Rows.Count;k++)
       {
         strTableNames[k] = dtSheetName.Rows[k]["TABLE_NAME"].ToString();

//[$Print_Area],[$Print_Titles],[$_]等
bool blnRet = strTableNames[k].EndsWith( "$");

if (blnRet == false)
{
continue;
}

     //从指定的表明查询数据,可先把所有表明列出来供用户选择
     string strExcel ="select * from[" + strTableNames[k] + "]";
     OleDbDataAdapter myCommand = new OleDbDataAdapter(strExcel,strConn);
try
{
//将Excel文件中的数据存入DataSet中
myCommand.Fill(ds, strTableNames[k].Replace("$",""));
}
catch(Exception ex)
{
throw ex;
}
finally
{
myCommand.Dispose();
}
}
}
catch(Exception ex)
{
throw ex;
}
finally
{
conn.Close();
}

return ds;
...全文
126 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
hmc108 2009-07-09
  • 打赏
  • 举报
回复
顶,请高手们来协助一下!~~~~~~~~~··
hmc108 2009-07-08
  • 打赏
  • 举报
回复
咕~~(╯﹏╰)b
就是oledb方法读取的。

我想问的是:
在使用“DataTable dtSheetName = conn.GetOleDbSchemaTable(OleDbSchemaGuid.Tables,new object[] {null,null,null,"TABLE"}); "的时候,没有将隐藏的工作表名字得到。不知道怎么处理了!
深渊的水影 2009-07-08
  • 打赏
  • 举报
回复
貌似用oledb读取,没问题。

odbc没试过

绑定。

110,534

社区成员

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

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

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