如何通过c#从asp.net中的excel文件加载gridview?
发布时间:2020-12-16 01:56:07 所属栏目:百科 来源:网络整理
导读:我尝试从excel文件加载gridview.但是我得到了这个错误 Microsoft Jet数据库引擎’Sheet1 $’找不到该对象.确保对象存在且其名称拼写正确且路径正确. 并且此行中存在错误:excelDataAdapter.Fill(dt); 我在App_Data文件夹中有一个.xls文件 using System;using
我尝试从excel文件加载gridview.但是我得到了这个错误
Microsoft Jet数据库引擎’Sheet1 $’找不到该对象.确保对象存在且其名称拼写正确且路径正确. 并且此行中存在错误:excelDataAdapter.Fill(dt); 我在App_Data文件夹中有一个.xls文件 using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.UI; using System.IO; using System.Data; using System.Data.OleDb; namespace Excell { public partial class LoadExcelToGrid: System.Web.UI.Page { protected void Page_Load(object sender,EventArgs e) { gv.DataSource = exceldata(Server.MapPath("~/data.xls")); gv.DataBind(); } public static DataSet exceldata(string filelocation) { DataSet ds = new DataSet(); OleDbCommand excelCommand = new OleDbCommand(); OleDbDataAdapter excelDataAdapter = new OleDbDataAdapter(); string excelConnStr = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" + filelocation + "; Extended Properties=Excel 8.0;"; OleDbConnection excelConn = new OleDbConnection(excelConnStr); excelConn.Open(); DataTable dt = new DataTable(); excelCommand = new OleDbCommand("Select * from [Sheet1$]",excelConn); excelDataAdapter.SelectCommand = excelCommand; excelDataAdapter.Fill(dt); ds.Tables.Add(dt); return ds; } } } 解决方法
本规范适用于我.
protected void btnUpload_Click(object sender,EventArgs e) { String strConnection = "ConnectionString"; string connectionString =""; if (FileUpload1.HasFile) { string fileName = Path.GetFileName(FileUpload1.PostedFile.FileName); string fileExtension = Path.GetExtension(FileUpload1.PostedFile.FileName); string fileLocation = Server.MapPath("~/App_Data/" + fileName); FileUpload1.SaveAs(fileLocation); if (fileExtension == ".xls") { connectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + fileLocation + ";Extended Properties="Excel 8.0;HDR=Yes;IMEX=2""; } else if (fileExtension == ".xlsx") { connectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + fileLocation + ";Extended Properties="Excel 12.0;HDR=Yes;IMEX=2""; } OleDbConnection con = new OleDbConnection(connectionString); OleDbCommand cmd = new OleDbCommand(); cmd.CommandType = System.Data.CommandType.Text; cmd.Connection = con; OleDbDataAdapter dAdapter = new OleDbDataAdapter(cmd); DataTable dtExcelRecords = new DataTable(); con.Open(); DataTable dtExcelSheetName = con.GetOleDbSchemaTable(OleDbSchemaGuid.Tables,null); string getExcelSheetName = dtExcelSheetName.Rows[0]["Table_Name"].ToString(); cmd.CommandText = "SELECT * FROM [" + getExcelSheetName +"]"; dAdapter.SelectCommand = cmd; dAdapter.Fill(dtExcelRecords); GridView1.DataSource = dtExcelRecords; GridView1.DataBind(); } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |