打开与excel文件

时间:2016-05-02 11:55:30

标签: c# asp.net excel oledb

我正在使用asp.net c#应用程序,其中我从用户那里获取excel文件,并在将其上传到服务器后,我在我的页面上打印此文件的内容,上传很好但是当我打开连接时connExcel.Open()发生了未指定的错误;在以下代码中:

  private void ImportToGrid(string File_Path, string Extenstion)
    {        
            string ConnStr = "";
            switch (Extenstion)
            {
                case ".xls": //Excel 97-03
                    ConnStr = ConfigurationManager.ConnectionStrings["Excel03ConString"].ConnectionString;
                    break;
                case ".xlsx": //Excel 07
                    ConnStr = ConfigurationManager.ConnectionStrings["Excel07ConString"].ConnectionString;
                    break;
            }
            ConnStr = String.Format(ConnStr, File_Path, "No");
            OleDbConnection connExcel = new OleDbConnection(ConnStr);
            OleDbCommand cmdExcel = new OleDbCommand();
            OleDbDataAdapter oda = new OleDbDataAdapter();
            DataTable dt = new DataTable();
            cmdExcel.Connection = connExcel;

            connExcel.Open();
            DataTable dtExcelData;
            dtExcelData = connExcel.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, null);
                connExcel.Close();

                connExcel.Open();
                cmdExcel.CommandText = "SELECT * From [Sheet1$]";
                oda.SelectCommand = cmdExcel;
                oda.Fill(dt);
                connExcel.Close();
                GridView_Excel.Caption = Path.GetFileName(File_Path);
                ViewState["GridviewData"] = dt;
                GridView_Excel.DataSource = ViewState["GridviewData"] as DataTable;
                GridView_Excel.DataBind();        
    }

代码在开发服务器上运行良好。

请帮帮我:(

1 个答案:

答案 0 :(得分:0)

我认为这一切都与office和AccessDatabaseEngine_X64.exe有关 对我来说,我必须在托管服务器上安装Office 2010 64并在iis上启用32位 - 应用程序池。并安装AccessDatabaseEngine_X64.exe

然后重新启动服务器或iis,一切都会正常。 它与代码无关,我想,我因为我有一些服务器有这个问题,有些没有。