从excel文件加载数据

时间:2010-01-06 03:58:02

标签: c#

我有一个excel文件,其结构如下所示。 我想从这个文件中读取数据。有两种方法可以做到这一点: - 使用OLEDB加载到DB。但在这种情况下,它似乎无法做到这一点。

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

        OleDbConnection objConn = new OleDbConnection(sConnectionString);
        objConn.Open();
        OleDbCommand objCmdSelect = new OleDbCommand("SELECT * FROM [Sheet1$]", objConn);
        OleDbDataAdapter objAdapter1 = new OleDbDataAdapter();
        objAdapter1.SelectCommand = objCmdSelect;

        DataSet objDataset1 = new DataSet();
        objAdapter1.Fill(objDataset1);
  • 使用Excel对象。在这种情况下,我怎么知道最后一个有数据的单元?

alt text http://img31.imageshack.us/img31/6736/unstructureexcel.png

由于

2 个答案:

答案 0 :(得分:0)

oledb的难点在于工作表有三个标题行。因此,您需要指定排除标题的范围。

    OleDbCommand objCmdSelect = new OleDbCommand("SELECT * FROM [Sheet1$A4:E65535]", objConn);

即使您指定了范围的最大行值,它也只会读取可用数据。

如果这对您有用,它将比Excel自动化更快更容易。

答案 1 :(得分:0)

看起来你只是用它来将数据加载到数据库中(我假设SQL Server?)你应该考虑使用SSIS(SQL Server Integration Services)加载excel文件。

here is a link to help you further