加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

如何通过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(); 
}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读