Oledb excel在excel到数据表转换

时间:2015-02-13 10:45:25

标签: c# asp.net excel

我正在尝试使用Excel作为我在asp.net中的数据库,并使用以下代码

 public DataTable exceldata(string filePath)
{
    DataTable dtexcel = new DataTable();
    bool hasHeaders = true;
    string HDR = hasHeaders ? "Yes" : "No";
    string strConn;
    if (filePath.Substring(filePath.LastIndexOf('.')).ToLower() == ".xlsx")
        strConn = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + filePath + ";Extended Properties=\"Excel 12.0;HDR=" + HDR + ";IMEX=0\"";
    else
        strConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + filePath + ";Extended Properties=\"Excel 8.0;HDR=" + HDR + ";IMEX=0\"";
    OleDbConnection conn = new OleDbConnection(strConn);
    conn.Open();
    DataTable schemaTable = conn.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, new object[] { null, null, null, "TABLE" });
    //Looping Total Sheet of Xl File
    /*foreach (DataRow schemaRow in schemaTable.Rows)
    {
    }*/
    //Looping a first Sheet of Xl File
    DataRow schemaRow = schemaTable.Rows[0];
    string sheet = schemaRow["TABLE_NAME"].ToString();
    if (!sheet.EndsWith("_"))
    {
        string query = "SELECT  * FROM Customers";
        OleDbDataAdapter daexcel = new OleDbDataAdapter(query, conn);
        dtexcel.Locale = CultureInfo.CurrentCulture;
        daexcel.Fill(dtexcel);
    }

    conn.Close();
    return dtexcel;

}

当我执行此代码时,

  

Microsoft Access数据库引擎无法找到对象' Customers'。确保对象存在,并且您正确拼写其名称和路径名称。如果'客户'不是本地对象,请检查您的网络连接或联系服务器管理员。   它在这里居住......我该怎么办。请帮帮我们......

1 个答案:

答案 0 :(得分:2)

通过.NET查询Excel文件时,应使用以下语法:

select * from [Customers$]

这假设您的Excel工作簿包含名为 Customers

的工作表