用C#读取Excel工作薄中指定区域的单元格数据

用C#读取Excel工作薄中指定区域的单元格数据

        使用ADO.NET中的OleDbDataAdapter对象读取Excel文件,默认工作表中的有数据的第一行单元格为字段名称。如果不想将工作薄中有数据的第一行单元格当作数据表字段名,可以用本文中的第二个实例实现。

        建立Connection对象的数据源连接字符串:"Provider=Microsoft.Jet.Oledb.4.0;Data Source=Excel 文件物理路径 + ";Extended Properties=Excel 8.0"; 这两个实例用Excel 2000以上版本制作。


实例1   读取Excel工作薄中的全部数据

        读取Excel工作薄1(工作薄名称:Sheet1)中的全部数据,在OleDbDataAdapter对象中的SQL语句应为:"Select 字段列表 From [工作表名$]"。

代码示例:

public void ReadExcel(string sExcelFile)
{
 string sConnectionString = "Provider=Microsoft.Jet.Oledb.4.0;Data Source=" + sExcelFile + ";Extended Properties=Excel 8.0";
 OleDbConnection connection = new OleDbConnection(sConnectionString);

 OleDbDataAdapter adp = new OleDbDataAdapter("Select * from [Sheet1$]",connection);

 DataSet ds = new DataSet();
 adp.Fill(ds,"Book1");

 grd_Excel.DataSource = ds.Tables["Book1"].DefaultView;
 grd_Excel.DataBind();
}


实例2   读取Excel工作薄选定区域中的数据

        首先在工作簿中,左键拖拽选取要定义成为表的区域,从菜单中选择‘插入’->‘名称’->‘定义’,在‘定义名称’对话框出现中键入表的名字:“TestTable”,OK。
        那么SQL语句应为:SELECT * FROM TestTable。

代码示例:

public void ReadExcel(string sExcelFile)
{
 string sConnectionString = "Provider=Microsoft.Jet.Oledb.4.0;Data Source=" + sExcelFile + ";Extended Properties=Excel 8.0";
 OleDbConnection connection = new OleDbConnection(sConnectionString);

 OleDbDataAdapter adp = new OleDbDataAdapter("SELECT * FROM TestTable", connection);

 DataSet ds = new DataSet();
 adp.Fill(ds,"Book1");

 grd_Excel.DataSource = ds.Tables["Book1"].DefaultView;
 grd_Excel.DataBind();
}


相关链接:http://community.csdn.net/Expert/topic/3900/3900381.xml?temp=.1787989

你可能感兴趣的:(C#)