好库网 好库网首页 | 我的好库
好饱的专栏

C#取得Excel工作簿工作表名称

发布者:好饱
发布日期:2011/5/13 17:38:04   更新日期:2011/5/13 17:38:04
阅读次数:7879
评分:4.80
介绍:使用ADO.NET来查询Excel工作簿中的工作表名称。
正文:

 

简介

 

使用ADO.NET来查询Excel工作簿的例子很多,但他们都有一个限制,你必须知道工作表的名称。 如果你知道工作表的名称就没有问题,但是如果你还不知道呢? 如果你的程序是动态的,每个Excel工作簿有不同的工作表名称呢,你需要一种方法来得到工作表的名称。 该代码示例提供了一种得到工作表名称的方法。

 

下面的方法返回一个字符串数组,包含表的名称。 该方法还显示了如何遍历数组。 该方法有一个输入参数 excelFile 这是该Excel文件的所在位置。

 

代码示例

 

/// <summary>
/// This mehtod retrieves the excel sheet names from 
/// an excel workbook.
/// </summary>
/// <param name="excelFile">The excel file.</param>
/// <returns>String[]</returns>

private String[] GetExcelSheetNames(string excelFile)
{
  OleDbConnection objConn = null;
  System.Data.DataTable dt = null;

  try
  {
    // 连接字符串,使用时请修改excel文件所在位置

    String connString = "Provider=Microsoft.Jet.OLEDB.4.0;" + 
        "Data Source=" + excelFile + ";Extended Properties=Excel 8.0;";

    // 创建连接对象

    objConn = new OleDbConnection(connString);

    // 打开数据库连接

    objConn.Open();

    // 得到包含数据架构的数据表

    dt = objConn.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, null);
 
    if(dt == null)
    {
      return null;
    }

    String[] excelSheets = new String[dt.Rows.Count];
    int i = 0;

    // 添加工作表名称到字符串数组

    foreach(DataRow row in dt.Rows)
    {
      excelSheets[i] = row["TABLE_NAME"].ToString();
      i++;
    }

    // 循环检索所有你需要的工作表

    for(int j=0; j < excelSheets.Length; j++)
    {
      // 查询每个excel工作表

    }

    return excelSheets;
  }
  catch(Exception ex)
  {
    return null;
  }
  finally
  {
    // 清理

    if(objConn != null)
    {
      objConn.Close();
      objConn.Dispose();
    }
    if(dt != null)
    {
      dt.Dispose();
    }
  }
}

 

 

 


评论 [发表评论]
账号 密码 还没帐号呢,现在注册一个?

免责声明:好库网所展示的信息由买卖双方自行提供,其真实性、准确性和合法性由信息发布人负责。好库网不提供任何保证,并不承担任何法律责任。