Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在asp.net中读取上载的.xls excel文件时出错_C#_.net_Asp.net_Excel_Ms Office - Fatal编程技术网

C# 在asp.net中读取上载的.xls excel文件时出错

C# 在asp.net中读取上载的.xls excel文件时出错,c#,.net,asp.net,excel,ms-office,C#,.net,Asp.net,Excel,Ms Office,我制作了一个程序,从数据库中读取一组记录,然后将其保存在数据网格中。从这里,我让用户下载文件作为excel文件 现在,用户对文件进行更改,然后再次上载,从这里我读取上载的.xls文件,并在数据库中进行必要的更改 问题是,每当用户上载更新的excel文件时,我都无法访问它,并出现错误 外部表不在预期的范围内 格式 我让用户下载文件作为 System.Web.HttpResponse response = System.Web.HttpContext.Current.Response;

我制作了一个程序,从数据库中读取一组记录,然后将其保存在数据网格中。从这里,我让用户下载文件作为excel文件

现在,用户对文件进行更改,然后再次上载,从这里我读取上载的.xls文件,并在数据库中进行必要的更改

问题是,每当用户上载更新的excel文件时,我都无法访问它,并出现错误

外部表不在预期的范围内 格式

我让用户下载文件作为

System.Web.HttpResponse response = System.Web.HttpContext.Current.Response;
            // first let's clean up the response.object
            response.Clear();
            response.Charset = "";
            // set the response mime type for excel
            response.ContentType = "application/vnd.ms-excel";
            response.AddHeader("Content-Disposition", "attachment;filename=\"" + filename + "\"");
            // create a string writer
            using (System.IO.StringWriter sw = new System.IO.StringWriter())
            {
                using (System.Web.UI.HtmlTextWriter htw = new System.Web.UI.HtmlTextWriter(sw))
                {
                    // instantiate a datagrid
                    System.Web.UI.WebControls.DataGrid dg = new System.Web.UI.WebControls.DataGrid();
                    dg.DataSource = dt;
                    dg.DataBind();
                    dg.RenderControl(htw);
                    response.Write(sw.ToString());
                    response.End();
                }
            }
用户在进行更改后上载该文件,我正在以

string connString = "Provider=Microsoft.Jet.OLEDB.4.0;" +
                "Data Source=" + path + "\\" + FileUpload1.FileName + ";Extended Properties=Excel 8.0;";
                    OleDbConnection oledbConn = new OleDbConnection(connString);

                    oledbConn.Open();

                    OleDbCommand cmd = new OleDbCommand("SELECT * FROM [$Sheet1 ", oledbConn);
                    OleDbDataAdapter oleda = new OleDbDataAdapter();
                    oleda.SelectCommand = cmd;

                    DataSet ds = new DataSet();

                    oleda.Fill(ds, "Employees");

请帮忙。谢谢。

OLEDB是否可能无法读取您正在生成的XLS文件版本?Excel 8是Excel 97,您可能会生成Excel 2007.xlsx格式。

是的,我同意brian!您可能正在生成另一种要读取的.xlsx格式

试试这个: