1. /**
    *
    *在本章节中主要讲解的是如何使用OLEDB将Excel中的数据导入到数据库中
    *
    */
    using System;
  2. using System.Data;
  3. using System.Data.OleDb;
  4. using System.Data.SqlClient;
  5. using System.IO;
  6. using System.Text;
  7. using System.Web;
  8. using System.Web.UI;
  9. private DataTable xsldata()
  10. {
  11. if(fuload.FileName == "")
  12. {
  13. lbmsg.Text = "请选择文件";
  14. return null;
  15. }
  16. string fileExtenSion;
  17. fileExtenSion = Path.GetExtension(fuload.FileName);
  18. if(fileExtenSion.ToLower() != ".xls" && fileExtenSion.ToLower() != ".xlsx")
  19. {
  20. lbmsg.Text = "上传的文件格式不正确";
  21. return null;
  22. }
  23. try
  24. {
  25. string FileName = "App_Data/" + Path.GetFileName(fuload.FileName);
  26. if(File.Exists(Server.MapPath(FileName)))
  27. {
  28. File.Delete(Server.MapPath(FileName));
  29. }
  30. fuload.SaveAs(Server.MapPath(FileName));
  31. //HDR=Yes,这代表第一行是标题,不做为数据使用 ,如果用HDR=NO,则表示第一行不是标题,做为数据来使用。系统默认的是YES
  32. string connstr2003 = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + Server.MapPath(FileName) + ";Extended Properties='Excel 8.0;HDR=Yes;IMEX=1;'";
  33. string connstr2007 = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + Server.MapPath(FileName) + ";Extended Properties=\"Excel 12.0;HDR=YES\"";
  34. OleDbConnection conn;
  35. if(fileExtenSion.ToLower() == ".xls")
  36. {
  37. conn = new OleDbConnection(connstr2003);
  38. }
  39. else
  40. {
  41. conn = new OleDbConnection(connstr2007);
  42. }
  43. conn.Open();
  44. string sql = "select * from [Sheet1$]";
  45. OleDbCommand cmd = new OleDbCommand(sql, conn);
  46. DataTable dt = new DataTable();
  47. OleDbDataReader sdr = cmd.ExecuteReader();
  48.  
  49. dt.Load(sdr);
  50. sdr.Close();
  51. conn.Close();
  52. //删除服务器里上传的文件
  53. if(File.Exists(Server.MapPath(FileName)))
  54. {
  55. File.Delete(Server.MapPath(FileName));
  56. }
  57. return dt;
  58. }
  59. catch(Exception e)
  60. {
  61. return null;
  62. }
  63. }
  64.  
  65. protected void Btn_Export_Excel_To_DB_Click(object sender, EventArgs e)
  66. {
  67. try{
  68.  
  69. DataTable dt = xsldata();
  70.  
  71. //dataGridView2.DataSource = ds.Tables[0];
  72. int errorcount = ;//记录错误信息条数
  73. int insertcount = ;//记录插入成功条数
  74.  
  75. int updatecount = ;//记录更新信息条数
  76.  
  77. string strcon = "server=localhost;database=database1;uid=sa;pwd=sa";
  78. SqlConnection conn = new SqlConnection(strcon);//链接数据库
  79. conn.Open();
  80.  
  81. for(int i = ; i < dt.Rows.Count; i++)
  82. {
  83. string Name = dt.Rows[i][].ToString();//dt.Rows[i]["Name"].ToString(); "Name"即为Excel中Name列的表头
  84. string Sex = dt.Rows[i][].ToString();
  85. int Age = Convert.ToInt32(dt.Rows[i][].ToString());
  86. string Address = dt.Rows[i][].ToString();
  87. if(Name != "" && Sex != "" && Age != && Address != "")
  88. {
  89. SqlCommand selectcmd = new SqlCommand("select count(*) from users where Name='" + Name + "' and Sex='" + Sex + "' and Age='" + Age + "' and Address=" + Address, conn);
  90. int count = Convert.ToInt32(selectcmd.ExecuteScalar());
  91. if(count > )
  92. {
  93. updatecount++;
  94. }
  95. else
  96. {
  97. SqlCommand insertcmd = new SqlCommand("insert into users(Name,Sex,Age,Address) values('" + Name + "','" + Sex + "'," + Age + ",'" + Address + "')", conn);
  98. insertcmd.ExecuteNonQuery();
  99. insertcount++;
  100. }
  101. }
  102. else
  103. {
  104. errorcount++;
  105. }
  106. }
  107. Response.Write((insertcount + "条数据导入成功!" + updatecount + "条数据重复!" + errorcount + "条数据部分信息为空没有导入!"));
  108. }
  109. catch(Exception ex)
  110. {
  111.  
  112. }
  113. }

.net 导入excel数据的更多相关文章

  1. SQL Server服务器上需要导入Excel数据的必要条件

    SQL Server服务器上需要导入Excel数据,必须安装2007 Office system 驱动程序:数据连接组件,或者Access2010的数据库引擎可再发行程序包,这样就不必在服务器上装Ex ...

  2. PLSQL Developer导入Excel数据

    LSQL Developer导入Excel数据 最近处理将Excel数据导入Oracle的工作比较多.之前都是采用Sqlldr命令行导入的方式处理.每次导入不同格式的Excel表数据,都需要先把Exc ...

  3. 导入excel数据

    前提条件:先要安装好EXCEL软件. 程序中经常要用到导入excel数据的功能.其实通过ole操作excel就简单的几行代码,但记性不好,经常要用经常要找, 还是作篇笔记吧. var ExcelApp ...

  4. (转)PLSQL Developer导入Excel数据

    场景:近来在做加班记录的统计,主要是统计Excel表格中的时间,因为我对于Excel表格的操作不是很熟悉,所以就想到把表格中的数据导入到数据库中,通过脚本语言来统计,就很方便了!但是目前来看,我还没有 ...

  5. 结合bootstrap fileinput插件和Bootstrap-table表格插件,实现文件上传、预览、提交的导入Excel数据操作流程

    1.bootstrap-fileinpu的简单介绍 在前面的随笔,我介绍了Bootstrap-table表格插件的具体项目应用过程,本篇随笔介绍另外一个Bootstrap FieInput插件的使用, ...

  6. 基于 Aspose.Cells与XML导入excel 数据----操作类封装

    前言 导入excel数据, 在每个项目中基本上都会遇到,第三方插件或者基于微软office,用的最多的就是npoi,aspose.cells和c#基于office这三种方式,其中各有各的优缺点,在这也 ...

  7. 【转】 如何导入excel数据到数据库,并解决导入时间格式问题

    在办公环境下,经常会用到处理excel数据,如果用写程序导入excel数据到数据库那就太麻烦了,涉及解析excel,还要各种格式问题,下面简单利用数据库本身支持的功能解决这类导入问题. 准备 创建表 ...

  8. C#导入Excel数据常见问题

    今天在做一个excle数据导入的时候遇到了一个奇葩问题,项目使用的是MVC,在VS2010里面调试的时候没有问题,可是当发布到本地IIS或服务器上时就出现了问题: 1.excel文件正在被使用: 2. ...

  9. Oracle导入excel数据快速方法

    Oracle导入excel数据快速方法 使用PLSQL  Developer工具,这个可是大名鼎鼎的Oracle  DBA最常使用的工具.    在单个文件不大的情况下(少于100000行),并且目的 ...

  10. thinkphp整合系列之phpexcel导入excel数据

    一:导入phpexcel /ThinkPHP/Library/Vendor/PHPExcel 二:导入excel的函数 /** * 导入excel文件 * @param string $file ex ...

随机推荐

  1. PHP环境手动搭建wamp-----Apache+MySQL+PHP

    首先下载分别下载Apache+MySQL+PHP. 然后分别解压到文件夹中. 1.安装Apache 1)检查80端口是否占用 说明:apache软件占用80软件,在计算机中一个端口只能被一个软件占用 ...

  2. 鼠标滑过切换div显示(鼠标事件)

    <html> <head> <meta http-equiv="Content-Type" content="text/html; char ...

  3. python subprocess模块使用总结

    一.subprocess以及常用的封装函数运行python的时候,我们都是在创建并运行一个进程.像Linux进程那样,一个进程可以fork一个子进程,并让这个子进程exec另外一个程序.在Python ...

  4. 前端基础之html-Day12

    1.web服务本质 import socket def main(): sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM) sock.bi ...

  5. SpringBoot集成Mybatis

    1.创建SpringBoot工程 根据 http://www.cnblogs.com/vitasyuan/p/8765329.html 说明创建SpringBoot项目. 2.添加相关依赖 在pom. ...

  6. python基础——类名称空间与对象(实例)名称空间

    python基础--类名称空间与对象(实例)名称空间 1 类名称空间 创建一个类就会创建一个类的名称空间,用来存储类中定义的所有名字,这些名字称为类的属性 而类的良好总属性:数据属性和函数属性 其中类 ...

  7. python3全栈开发-面向对象的三大特性(继承,多态,封装)之继承

    一 .初识继承 1.什么是继承 继承是一种创建新类的方式,新建的类可以继承一个或多个父类(python支持多继承),父类又可称为基类或超类,新建的类称为派生类或子类. 特点: 子类会“”遗传”父类的属 ...

  8. uva 10870

    https://vjudge.net/problem/UVA-10870 题意: f(n) = a1f(n − 1) + a2f(n − 2) + a3f(n − 3) + . . . + adf(n ...

  9. Django:(博客系统)使用使用mysql数据->后台管理tag/post/category的配置

    Django后台一般是不需要人为的去开发的,因为django已经通过配置实现哪些模块是后台需要管理,如何排序,列表展示哪些列,列显示名称,是否为空(默认值),过滤条件,分页页数,列表中哪些项可编辑等等 ...

  10. 复习HTML+CSS(5)

    n  <meta>标记 <meta>的主要作用,是提供网页的源信息.比如:指定网页的搜索关键字 <meta>标记有两个属性:http-equiv和name. 1. ...