使用c#asp.net从excel文件中获取数据

Posted

技术标签:

【中文标题】使用c#asp.net从excel文件中获取数据【英文标题】:Get data from the excel file using c# asp.net 【发布时间】:2012-08-20 15:12:28 【问题描述】:

我正在尝试使用以下代码加载数据。

string path = System.IO.Path.GetFullPath(uploadExcelFile.PostedFile.FileName);
            string connString = "provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\\Users\\Rizwan shahid\\Desktop\\DataUpload\\Req.xls;Extended Properties=Excel 12.0;";
            OleDbConnection oledbConn = new OleDbConnection(connString);
            try
            
                oledbConn.Open();
                OleDbCommand cmd = new OleDbCommand("SELECT * FROM [Sheet1$]", oledbConn);
                OleDbDataAdapter oleda = new OleDbDataAdapter();
                oleda.SelectCommand = cmd;
                DataSet ds = new DataSet();
                oleda.Fill(ds, "Table");
                return ds.Tables[0];
            
            catch
            
                return null;
            
            finally
            
                oledbConn.Close();
            

它在 32 位操作系统上运行,但在 64 位操作系统上运行此代码时出现以下错误

The Microsoft Access database engine could not find the object 'Sheet1$'. Make sure the object exists and that you spell its name and the path name correctly. If 'Sheet1$' is not a local object, check your network connection or contact the server administrator.

我在管理员模式下运行 VS 并找到了许多解决方案,例如将 Sheet1 替换为文件名或将文件放在 C 驱动器中,但仍然出现相同的错误。

【问题讨论】:

catch 返回 null; 真的?你不关心错误是什么吗? @SteveWellens 你知道我的问题吗? 我听说过/读过 一些 实例,如果源 .xls 文件以某种方式不可用、打开、锁定或无法访问...虽然理想情况下,如果是这种情况,您会/应该收到不同的消息。只是一个想法,可能是一个远景......我们确定 xls 文件在 64 位机器上的相同/正确位置吗? @SteveWellens 你知道我的问题吗? – user1387147 是的,我阅读了您的帖子。然后我对您的代码发表了评论。 【参考方案1】:

您可以在此处下载最新版本的 Jet

http://www.microsoft.com/en-us/download/search.aspx?q=jet

【讨论】:

【参考方案2】:

这可行(我从“虚拟”路径开始,然后应用真正的运行时路径):

OleStringBuilder =
        new OleDbConnectionStringBuilder(@"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\MyExcel.xls;Extended Properties='Excel 8.0;HDR=Yes;IMEX=1';");

OleStringBuilder.DataSource = MapPath(@"~\App_Data\MyExcelWorksheet.xls");

【讨论】:

以上是关于使用c#asp.net从excel文件中获取数据的主要内容,如果未能解决你的问题,请参考以下文章

如何从 excel 中读取数据并推入 asp.net 中的数组?

从 ftp 在 gridview 上显示数据 查看更多:C#ASP.NET

如何使用 C# 从远程位置将 Excel csv 或 xls 文件的行读入 ASP.NET 应用程序?

ASP.NET从数据库导出到EXCEL

C#/ASP.NET - 从 PDF/DOC 文件中获取缩略图

asp.net 客户端iframe中的excel文件如何操作