Asp.Net 导入Excel表格

前台页面:

<div align="center" style="background-color:Beige">
<table style="width: 576px; border-collapse: separate; text-align: center">
<tr><td>Excel导入SQL数据库</td></tr>
<tr>
<td style="text-align: left">
<asp:FileUpload ID="FileUpload1" runat="server" Width="305px" />
<asp:Button ID="btnToLead" runat="server" OnClick="Button1_Click" Text="导入SQL" /></td>
</tr>
<tr>
<td>
<asp:GridView ID="gvExcelEdu" runat="server" Height="64px" Width="100%" AutoGenerateColumns="False">
<Columns>
<asp:BoundField DataField="Id" HeaderText="编号" />
<asp:BoundField DataField="userName" HeaderText="用户名" />
<asp:BoundField DataField="passWord" HeaderText="密码" />
</Columns>
</asp:GridView>
</td>
</tr>
</table>
</div>

  

后台代码:
注意添加引用

using System.Data.OleDb;
using System.Data.SqlClient;
string strConn = "Data Source=192.168.0.8;DataBase=BR_BMS;Uid=DP;Pwd=dp"; //链接SQL数据库

    //加载事件
    protected void Page_Load(object sender, EventArgs e)
    {
        SqlConnection cn = new SqlConnection(strConn);
        cn.Open();
        SqlDataAdapter sda = new SqlDataAdapter("select * from Emp_Admin", cn);
        DataSet ds = new DataSet();
        sda.Fill(ds, "Admin");
        this.gvExcelEdu.DataSource = ds.Tables["Admin"];
        this.gvExcelEdu.DataKeyNames = new string[] { "id" };
        this.gvExcelEdu.DataBind();
    }
// 查询EXCEL电子表格添加到DATASET
public DataSet ExecleDs(string filenameurl, string table)
{
string strConn = "Provider=Microsoft.Jet.OleDb.4.0;" + "data source=" + filenameurl + ";Extended Properties=‘Excel 8.0; HDR=YES; IMEX=1‘";
OleDbConnection conn = new OleDbConnection(strConn);
conn.Open();
DataSet ds = new DataSet();
OleDbDataAdapter odda = new OleDbDataAdapter("select * from [Sheet1$]", conn);
odda.Fill(ds, table);
return ds;
 }
// Excel导入数据
protected void Button1_Click(object sender, EventArgs e)
{
 if (FileUpload1.HasFile == false)//HasFile用来检查FileUpload是否有指定文件
{
   Response.Write("<script>alert(‘请您选择Excel文件‘)</script> ");
    return;//当无文件时,返回
 }
string IsXls = System.IO.Path.GetExtension(FileUpload1.FileName).ToString().ToLower();//System.IO.Path.GetExtension获得文件的扩展名
if (IsXls != ".xls")
{
   Response.Write("<script>alert(‘只可以选择Excel文件‘)</script>");
    return;//当选择的不是Excel文件时,返回
        }
SqlConnection cn = new SqlConnection(strConn);
cn.Open();
string filename = DateTime.Now.ToString("yyyymmddhhMMss") + FileUpload1.FileName;              //获取Execle文件名  DateTime日期函数
string savePath = Server.MapPath(("~\\upfiles\\") + filename);//Server.MapPath 获得虚拟服务器相对路径
FileUpload1.SaveAs(savePath);                        //SaveAs 将上传的文件内容保存在服务器上
DataSet ds = ExecleDs(savePath, filename);           //调用自定义方法
DataRow[] dr = ds.Tables[0].Select();            //定义一个DataRow数组
int rowsnum = ds.Tables[0].Rows.Count;
if (rowsnum == 0)
{
    Response.Write("<script>alert(‘Excel表为空表,无数据!‘)</script>");   //当Excel表为空时,对用户进行提示
}
else
{
     for (int i = 0; i < dr.Length; i++)
{
string id = dr[i]["编号"].ToString();//编号 列名 以下类似
string userName = dr[i]["用户名"].ToString();
string passWord = dr[i]["密码"].ToString();//密码 excel列名【名称不能变,否则就会出错】
string sqlcheck = "select count(*) from Emp_Admin where userName=‘" + userName + "‘And passWord=‘" + passWord + "‘";  //检查用户是否存在
SqlCommand sqlcmd = new SqlCommand(sqlcheck, cn);
int count = Convert.ToInt32(sqlcmd.ExecuteScalar());
if (count < 1)
{
    string insertstr = "insert into Emp_Admin (userName,passWord) values(‘" + userName + "‘,‘" + passWord + "‘)";
    SqlCommand cmd = new SqlCommand(insertstr, cn);
try
{
    cmd.ExecuteNonQuery();
}
catch (MembershipCreateUserException ex)       //捕捉异常
{
      Response.Write("<script>alert(‘导入内容:" + ex.Message + "‘)</script>");
}
}
else
 {
       Response.Write("<script>alert(‘内容重复!禁止导入‘);location=‘default.aspx‘</script></script> ");
       continue;
}
}
       Response.Write("<script>alert(‘Excle表导入成功!‘);location=‘default.aspx‘</script>");
}
        cn.Close();
}

  

时间: 2024-10-06 19:50:41

Asp.Net 导入Excel表格的相关文章

ASP.NET输出EXCEL表格的几种方法(总结修改)

这几天要从数据库导出EXCEL表格,就找了N钟方法,经测试,下面的方法比较的好用一点.都是经过输入DataTable而导出的.不过导出的EXCEL都不是正规的EXCEL格式,只能说是HTML格式的,导出的再导入进数据库就会出现问题了.想导入的话用EXCEL打开另存为EXCEL格式就好了 1.利用DataRow直接输出,经测试,没有乱码.        public bool LendOutExcel(string strFileName, DataTable DT)        {      

sqlite expert导入excel表格 (包括使用问题、以及把 一个表的数据插入到另一个表中)

一.sqlite导入excel 1.打开要导入的excel --- 另存为(2007版点击左上角OFFICE图标即可找到) --- 保存类型:CSV类型 (提示什么不兼容什么的,一律点确定.) 2.打开sqlite expert ,选择建好的数据库文件(或者是导入的已存在的db文件,或者是自己新建一个.db数据库文件). 右击文件名---选择最后一个import text file(CSV,TSV) 3.(如果没有建过和这个excel名相同的表)右边Destination选择第一项new tab

phpexcel导入excel表格

html代码 <form action="{:U('Mall/updExcel')}" method="POST" enctype="multipart/form-data"> //提交form表单到Mall控制器下的upExcel方法中 <div style="float:left;width:41%;"> <div style="float:left;"> <i

Java 从数据库中查找信息导入Excel表格中

前端js function Excel (){ //ajax请求 $.ajax({ url : "outPutAboutShopInfo", type : "post", dataType : "json", data:{ "basicShop.shopId" : shopId, "basicShop.shopMemo" : stringType //不方便增加字段所以使用门店的一个"备注&quo

导入Excel表格(二)

1. 提取session中的数据.并进行分页操作,上传excel表格,保存到临时表格. 初始化临时表格,提交表单,判断状态是否为真,若为真,则启用 导入到数据库 的按钮:为false,让查询的url 和数据 为空,写一个方法到控制器查询数据,把数据保存到临时表格.2. 控制器声明一个列表对象,当session的数据不为空时,用来接收保存在session中的数据,然后计算数据的总条数,实例化实体类对象,封装数据,将得到的数据返回到页面. List<studentVo> listStudentVo

使用SqlBulkCopy类实现导入Excel表格

对于C#Execl数据的导入导出大家不感到陌生,这是一个项目中经常回遇到的功能,今天在这里讲的事,使用SqlBulkCopy类实现导入Excel大批量的数据导入. /// <summary> /// 数据库对应表 /// </summary> /// <returns></returns> private static DataTable GetDeliveryOrderTable() { DataTable dt = new DataTable(); dt

ASP.NET 导入EXCEl文档

鉴于教务一般都是手动输入学生信息,在未了解本校数据库的客观情况之下,我们准备设计一个导入excel文档中学生信息如数据库的功能.结合网上各类大牛的综合版本出炉.. 首先具体的实现思想如下: 1.先使用FileUpload控件fuload将Excel文件上传到服务器上得某一个文件夹. 2.使用OleDb将已经上传到服务器上的Excel文件读出来,这里将Excel文件当做一个数据库来读.在联系数据库语句中,Data Source就是该文件在服务器上得物理路径 3.将第二步中读出的数据以DataTab

ASP.NETCore -----导入Excel文件

前端上传excel文件利用npoi读取数据转换成datatable(netcore坑爹啊,用的vs2017竟然不能可视化) 前端界面 @{ Layout = null; } <!DOCTYPE html> <html> <head> <meta name="viewport" content="width=device-width" /> <title>Xlsx</title> </hea

Asp.net 导入Excel

前台代码: <body> <form id="form1" runat="server"> <div> <asp:FileUpload ID="FileUpload" runat="server" /> <asp:Button ID="btn" runat="server" Text="Button" OnClic