前台代码,有点简单:


<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/><title></title>
</head>
<body><form id="form1" runat="server"><div><asp:FileUpload ID="FileUpload1" runat="server" /><asp:Button ID="Button1" runat="server"  Text="确定上传" onclick="Button1_Click" /></div></form>
</body>
</html>

后台完整代码:


using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data;
using System.Data.OleDb;
using System.IO;
using System.Data.SqlClient;
using System.Configuration;namespace fileUpLoad
{public partial class Index : System.Web.UI.Page{/// <summary>/// time=2018.9.17/// </summary>/// <param name="fileUrl">文件的完整路径(包括扩展名)</param>/// <returns>DataTabl</returns>public static DataTable GetExcelDatatable(string fileUrl){//支持.xls和.xlsx,即包括office2010等版本的   HDR=Yes代表第一行是标题,不是数据;string cmdText = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source="+fileUrl+";  Extended Properties='Excel 12.0; HDR=Yes; IMEX=1'";System.Data.DataTable dt = null;//建立连接OleDbConnection conn = new OleDbConnection(cmdText);try{//打开连接if (conn.State == ConnectionState.Broken || conn.State == ConnectionState.Closed){conn.Open();//if (conn.State == System.Data.ConnectionState.Open) {  //测试用的//   Response.Write("文件链接成功!");//}}System.Data.DataTable schemaTable = conn.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, null);string strSql = "select * from [Sheet1$]";   //这里指定表明为Sheet1OleDbDataAdapter da = new OleDbDataAdapter(strSql, conn);DataSet ds = new DataSet();da.Fill(ds);dt = ds.Tables[0];;return dt;}catch (Exception exc){throw exc;}finally{conn.Close();conn.Dispose();}}/// <summary>/// time=2018.9.17/// </summary>/// <param name="savePath">文件的完整路径(包括扩展名)</param>/// <param name="destinationTableName">目标数据库表名</param>/// <returns>如果成功插入,返回true</returns>public static bool SqlBulkCopyToDB(string savePath, string destinationTableName){DataTable ds = new DataTable(); string connectionString = ConfigurationManager.ConnectionStrings["connString"].ConnectionString;using (System.Data.SqlClient.SqlBulkCopy bcp = new System.Data.SqlClient.SqlBulkCopy(connectionString))// 使用using 该链接在最后会自动关闭{ds = GetExcelDatatable(savePath);           //调用自定义方法//bcp.BatchSize = 100;//每次传输的行数 //bcp.NotifyAfter = 100;//进度提示的行数 // bcp.DestinationTableName = "Tb";//需要导入的数据库表名bcp.DestinationTableName = destinationTableName; //需要导入的数据库表名try{//excel表头与数据库列对应关系 for (int i = 0; i < ds.Columns.Count; ++i){//string s = ds.Columns[i].ColumnName;bcp.ColumnMappings.Add(ds.Columns[i].ColumnName, sqlTableName[i]);   // 设置cxcel表中列名与数据库中表列名的映射关系  sqlTableName[i]中存的时数据库表中的各个字段}bcp.WriteToServer(ds);return true;//Response.Write("<script>alert('Excle表导入成功!')</script>");   //不能成功导入时,对用户进行提示}catch (Exception ex){Console.WriteLine(ex.Message);return false;//Response.Write("<script>alert('Excle表导入失败!');</script>");}}}/// <summary>/// time=2018.9.17/// </summary>/// <param name="sender"></param>/// <param name="e"></param>protected void Button1_Click(object sender, EventArgs e){if (FileUpload1.HasFile == false)//HasFile用来检查FileUpload是否有指定文件{Response.Write("<script>alert('请您选择Excel文件')</script> ");return;//当无文件时,返回}string IsXls = Path.GetExtension(FileUpload1.FileName).ToString().ToLower();//System.IO.Path.GetExtension获得文件的扩展名if (IsXls != ".xlsx" && IsXls != ".xls"){Response.Write(FileUpload1.FileName);Response.Write("<script>alert('只可以选择Excel文件')</script>");return;//当选择的不是Excel文件时,返回}string filename = FileUpload1.FileName;              //获取Execle文件名  DateTime日期函数string savePath = Server.MapPath(("uploadfiles\\") + filename);//Server.MapPath 获得虚拟服务器相对路径Response.Write(savePath);//savePath ="E:\\Visual Studio 2013 Workspace\\fileUpLoad\\fileUpLoad\\uploadfiles\\201842314025658.xls"DataTable ds = new DataTable();FileUpload1.SaveAs(savePath);                        //SaveAs 将上传的文件内容保存在服务器上   文件可以成功保存bool ok = SqlBulkCopyToDB(savePath, "Tb");   //  用SqlBulkCopy 将表中数据插入数据库  “Tb”为要插入数据库的表名if (ok){Response.Write("<script>alert('Excle表导入成功!')</script>");   //不能成功导入时,对用户进行提示}else{Response.Write("<script>alert('Excle表导入失败!');</script>");}}}
}

配置文件:

<connectionStrings><add name="connString" connectionString="Server=.;DataBase=test;uid=sa;pwd=123"/></connectionStrings><appSettings><add key ="conStr" value="Server=.;User Id=sa; pwd=123;database=test"/></appSettings>

asp.net C# 实现上传Excel文件导入数据到SQL Server 数据库相关推荐

  1. php上传查询excel到mysql_PHP上传Excel文件导入数据到MySQL数据库示例

    PHP上传Excel文件导入数据到MySQL数据库示例2020-06-20 00:34:11 最近在做Excel文件导入数据到数据库.网站如果想支持批量插入数据,可以制作一个上传Excel文件,导入里 ...

  2. php 上传excel到mysql_PHP上传Excel文件导入数据到MySQL数据库示例

    最近在做Excel文件导入数据到数据库.网站如果想支持批量插入数据,可以制作一个上传Excel文件,导入里面的数据内容到MySQL数据库的小程序. 要用到的工具: ThinkPHP:轻量级国产PHP开 ...

  3. laravel-admin / Dcat admin 上传Excel并导入数据到数据库

    准备工作 安装maatwebsite/excel composer require maatwebsite/excel laravel-admin 效果图 创建按钮 $grid->tools(f ...

  4. ExcelToDatabase:批量导入Excel文件到MySQL/Oracle/SQL Server数据库的自动化工具

    ExcelToDatabase:批量导入Excel到MySQL/Oracle/SQL Server数据库的自动化工具 简介 ExcelToDatabase 是一个可以批量导入excel到mysql/o ...

  5. springboot实现上传Excel文件与数据库中的数据进行比对

    springboot实现上传Excel文件与数据库中的数据进行比对 首先先写好文件上传的接口,然后上传需要比对数据的文件,在点击数据比对 下面是一部分数据比对的代码: 后端controller部分: ...

  6. 服务器上传excel文件并读取数据,asp.net上传Excel文件并读取数据的实现方法

    前言 本文主要给大家介绍了关于asp.net上传Excel文件并读取数据的相关内容,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍吧 实现如下: 前台代码:使用服务端控件实现上传 服务端 ...

  7. asp.net core mvc上传大文件解决方案

    asp.net core mvc上传大文件解决方案 参考文章: (1)asp.net core mvc上传大文件解决方案 (2)https://www.cnblogs.com/eggtwo/p/988 ...

  8. Django框架(上传Excel文件并读取)

    博主今天整理下Django框架中上传Excel文件并读取 博主是要在管理平台中新增用例的维护功能,想着通过上传Excel文件来展示用例,下面是项目的路径图: 首先先建数据库模型 model.py 可以 ...

  9. vue之 上传 excel文件

    目录 vue之 上传 excel文件 父组件 UploadExcel.vue 效果 vue之 上传 excel文件 父组件 <upload-excel-component :on-success ...

最新文章

  1. Java 日志框架适配/冲突解决方案(值得收藏)
  2. Linux文件与目录管理(文件查阅)
  3. windows7现实计算机内存不足,win7旗舰版系统提示系统内存不足的解决方法
  4. linux tar命令详解,Linux tar命令详解
  5. 均方误差越大越好_超详细 | 如何写好计量经济学实证分析论文?
  6. 机器学习实战-决策树-22
  7. Matplotlib常用库方法
  8. python中exception类的_面试题 | 列举几个Python中的标准异常类?
  9. python getostime_Python os.getrandom()用法及代码示例
  10. 如何做研究-精辟分析
  11. 窃取发送到服务器的任何信息,担心信息泄密?MIUI 11测试“空信息授权”,保护你的隐私...
  12. pandas项目中使用的一些代码总结
  13. 江西单招主计算机学校,2019年江西单招学校,江西单招信息技术试题,2019江西单招综合素质...
  14. 转场动画CATransition~~~~~~
  15. G1垃圾回收日志分析
  16. Grafana 在 Kubernetes 中的使用
  17. ECS服务器10M带宽能让多少人同时访问?
  18. private、fileprivate、public、open
  19. 【moment.js】时间格式化插件
  20. 一、RabbitMQ初使用(Consumer)

热门文章

  1. 精益数据分析 | 你孜孜追求的“增长”可能只是自嗨
  2. JavaScript多文件下载
  3. JSONUtils.toJSONString的一个坑
  4. 专 linux命令之set x详解
  5. Android adb.exe程序启动不起来处理方法
  6. Spring 开启Annotation context:annotation-config 和 context:component-scan诠释及区别
  7. posix多线程有感--线程高级编程(条件变量)
  8. 仿京东左侧二级导航条
  9. maxthon在浏览的页面上右键按住不动再按滚轮可以对打开的选项卡进行选择!
  10. download first at netease music