C#以OleDb的方式操作Excel文件(二)

本文介绍了如何使用C#的OleDb连接方式获取Excel文件的工作表名称,以及如何通过GetOleDbSchemaTable方法获取工作表中的列名。尽管列名可能以F开头的数字表示,但可以通过这种方法了解Excel表格结构。
摘要由CSDN通过智能技术生成

上次说到,用OleDb方式操作Excel文件,可不可以知道这个文件中到底有几个工作表,每个工作表叫什么名字呢?

答案自然是:有的。

http://msdn.microsoft.com/zh-cn/library/system.data.oledb.oledbconnection.getoledbschematable(v=vs.110).aspx

上面的链接是MSDN中对OleDbConnection.GetOleDbSchemaTable进行说明的页面,可以了解比较详细的信息,如果想知道关于工作表的信息,可以这样做:

using System.Data;
using System.Data.OleDb;
...
// strConn是已经写好的连接字符串
OleDbConnection conn = new OleDbConnection(strConn);

// 调用下面的语句前(GetOleDbSchemaTable),要求先打开这个文件
conn.Open();

// 获得excel文件的各个表单(sheet)的名字,提高兼容性

// 先获取TABLE信息
// 按照我的理解,TABLE对应于Excel文件来说,就是工作表
DataTable xlsTable = conn.GetOleDbSchemaTable(OleDbSchemaGuid.Tables,
                    new object[] { null, null, null, "TABLE" });

// 读取工作表的名称
List<string> sheetList = new List<string>();
foreach (DataRow sheetRow in xlsTable.Rows)
{
    sheetList.Add(sheetRow["TABLE_NAME"].ToString());
}
...
conn.Close();

这样,工作表名称就放在sheetList里面了。需要注意的是,读出的工作表名称天然地带有$符号<

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值