从Asp.net上阅读Excel sheeet?

时间:2014-05-21 08:13:59

标签: asp.net

从本地驱动器读取Excel工作表时出错。我正在使用asp.net来阅读excel表。我的错误:

Microsoft Office Access数据库引擎无法打开或写入文件''。它已由另一个用户专门打开,或者您需要获得查看和写入其数据的权限。

     protected void btnup_Click(object sender, EventArgs e)
    {                              
            string Extension = Path.GetExtension("Book1.xlsx");
            string FolderPath = @"D:/Book1.xlsx";             
            Import_To_Grid(FolderPath, Extension); 
    }

    private void Import_To_Grid(string FilePath, string Extension )
    {
        string conStr = "";

        switch (Extension)
        {

            case ".xls": //Excel 97-03

                conStr = ConfigurationManager.ConnectionStrings["Excel03ConString"] .ConnectionString;
                break;

            case ".xlsx": //Excel 07

                conStr = ConfigurationManager.ConnectionStrings["Excel07ConString"] .ConnectionString;
                break;

        }



        using (OleDbConnection conn = new OleDbConnection(conStr))
        {
            conn.Open();                
            DataTable sheetsName = conn.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, new object[]       { null, null, null, "Table" });                
            string firstSheetName = sheetsName.Rows[0][2].ToString();                 
            string sql = string.Format("SELECT * FROM [{0}]", firstSheetName);
            OleDbDataAdapter ada = new OleDbDataAdapter(sql, conStr);
            DataSet set = new DataSet();
            ada.Fill(set);

        }
        }

我在conn.Open()时遇到错误。

2 个答案:

答案 0 :(得分:0)

由于您使用MS Office打开该Excel文件或其他进程正在打开您的Excel文件,因此可能会发生此错误。

答案 1 :(得分:0)

我得到了我的问题的解决方案。实际上我在源代码中的连接字符串中的连接字符串中做了一些错误我没有给出路径,这就是它抛出错误的原因。