这几天又碰到了要导excel数据到数据库中,之前在网上也是找,东拼西凑也是把功能弄出来了,今天写个博客记录下。

首先页面的代码

@using (Html.BeginForm("Browse", "OutGygx", FormMethod.Post, new { enctype = "multipart/form-data", id = "form_Upload" })){ <input id="FileUpload" type="file" name="FileUpload" style="width: 200px; height: 24px; background: White" />  <input id="btnImport" type="submit" class="easyui-linkbutton c4"  value="导入Excel" /><p style="color: Red; text-align: center;">@ViewBag.error</p>   }<!-- 或者通过js提交 一定要使用from表单 --><form id="form" method="POST" enctype="multipart/form-data"><input id="FileUpload" type="file" name="FileUpload" style="width: 200px; height: 24px; background: White" /> <a href="#" class="easyui-linkbutton c4"  onclick="Upload()">导入Excel</a></form>//处理上传文件function Upload() {var EquipmentNo = $("#EquipmentNo").textbox('getValue');$('#form').form('submit', {url: '/EI_CheckStandard/Browse?EquipmentNo=' + EquipmentNo,onSubmit: function () {return $(this).form('validate');},success: function (result) {if (result === "上传成功") {$.messager.alert('提示', result);} else {$.messager.alert('提示', result);}CallBack1('#dgItem');//重载记录 }});}

页面是通过from表单来访问到后台control中的方法

然后是control层

//将excel导入到数据库public ActionResult Browse(LSM_Out_ApplyGygx_M data){// 获取上传的文件  HttpPostedFileBase file = Request.Files["FileUpload"];string filename = Path.GetFileName(file.FileName);// 获取上传文件的大小单位为字节byte  int filesize = file.ContentLength;// 获取上传文件的扩展名 string fileEx = System.IO.Path.GetExtension(filename); string FileName;string savePath;if (file == null || file.ContentLength <= 0){ViewBag.error = "文件不能为空";return Content("上传失败!");}else{// 获取无扩展名的文件名  string NoFileName = System.IO.Path.GetFileNameWithoutExtension(filename);// 定义上传文件的最大空间大小为10M  int Maxsize = 10000 * 1024;// 定义上传文件的类型字符串  string FileType = ".xls,.xlsx";FileName = NoFileName + DateTime.Now.ToString("yyyyMMddhhmmss") + fileEx;if (!FileType.Contains(fileEx)){ViewBag.error = "文件类型不对,只能导入xls和xlsx格式的文件";return Content("上传失败!");}if (filesize >= Maxsize){ViewBag.error = "上传文件超过10M,不能上传";return Content("上传失败!");}// 指定文件存放路径(这里要在项目中建一个文件夹来存放上传的excel)string path = AppDomain.CurrentDomain.BaseDirectory + "Download\\excel\\";savePath = Path.Combine(path, FileName);//存入file.SaveAs(savePath);}string result = string.Empty;string strConn=null;//strConn = "Provider=Microsoft.Jet.OLEDB.4.0;" + "Data Source=" + savePath + "; " + "Extended Properties=Excel 8.0;";  //if (fileEx == ".xlsx") //excel2007的文件            //{//    strConn = "Provider=Microsoft.Ace.OleDb.12.0;;Data Source=\"" + savePath + "\";Extended Properties=\"Excel 12.0;HDR=YES;IMEX=1;\"";//}//if (fileEx == ".xls")//excel2003的文件            //{//    strConn = "Provider=Microsoft.Jet.OleDb.4.0;Data Source=\"" + savePath + "\";Extended Properties=\"Excel 8.0;HDR=YES;IMEX=1;\"";//}// 此连接可以操作.xls与.xlsx文件 (支持Excel2003 和 Excel2007 的连接字符串)strConn = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + savePath + ";Extended Properties='Excel 12.0;HDR=YES;IMEX=1'";   // 备注: "HDR=yes;"是说Excel文件的第一行是列名而不是数据,"HDR=No;"正好与前面的相反。  OleDbConnection conn = new OleDbConnection(strConn);// 打开数据库连接conn.Open();DataSet myDataSet = new DataSet();OleDbDataAdapter myCommand = new OleDbDataAdapter("select * from [Sheet1$]", strConn);try{//      "IMEX=1 "如果列中的数据类型不一致,使用"IMEX=1"可必免数据类型冲突。  //OleDbDataAdapter myCommand = new OleDbDataAdapter("select * from [Sheet1$]", strConn);  //连接串  //string strConn = "Provider=Microsoft.Jet.OLEDB.4.0;" + "DataSource=" + Path + ";" + "ExtendedProperties=Excel8.0;";  myCommand.Fill(myDataSet, "ExcelInfo");//OutGygxController.Deleted();DataTable table = myDataSet.Tables["ExcelInfo"].DefaultView.ToTable();for (int i = 0; i < table.Rows.Count; i++){// table.Rows[i][1] 就是获取第i行第1列的数据data.EmpName = table.Rows[i][1].ToString();
}conn.Close();// 每次上传完毕删除文件System.IO.File.Delete(savePath);} catch (Exception ex){ViewBag.error = ex.Message;return Content("错误");}}

这里就到excel导入到获取数据功能就全实现了,最后只需要将获取到的数据存到表中就可以了。

因为这种方式会上传一份excel到服务器保存才获取到数据,为了避免资源浪费,最后加上

System.IO.File.Delete()

就可以删除掉服务器上的excel了

这个代码适用于vs2008以上版本,当然vs2008及以下版本也使用,适当改下代码就可以了

C#导入excel到数据库相关推荐

  1. php把路由放在数据库,PHP导入Excel到数据库的方法 PHP把数据库数据导出到方法

    PHP导入Excel到数据库的方法 PHP把数据库数据导出到方法 本文实例讲述了PHP将Excel导入数据库及数据库数据导出至Excel的方法.分享给大家供大家参考.具体实现方法如下: 一.导入 导入 ...

  2. 导入Excel至数据库中 外部表不是预期格式错误信息

    导入Excel到数据库时出现"外部表不是预期格式"的错误信息,针对这个问题开始很纠结,如果导入的Excel是新建的就不会出现该问题,如果是在导出数据的基础上进行导入,将会出现这样的 ...

  3. 导入Excel至数据库中 quot;外部表不是预期格式quot;错误信息

    导入Excel到数据库时出现"外部表不是预期格式"的错误信息,针对这个问题开始很纠结,如果导入的Excel是新建的就不会出现该问题,如果是在导出数据的基础上进行导入,将会出现这样的 ...

  4. 定时导入excel到数据库

    定时导入excel到数据库 前面我们介绍了一键导入excel到数据库的方法,现在我们通过定时任务来实现真正的自动化. 示例 如图,假设我们有一张表格Merge.xlsx,每天这个表格的数据都会更新,我 ...

  5. 一键导入excel到数据库的最佳实践

    一键导入excel到数据库的最佳实践 摘要:通常情况下,我们需要将excel数据导入到数据库(比如mysql,sql server,oracle)进行数据分析处理.通常我们会用像navicate这样的 ...

  6. vhm在服务器上创建虚拟机,一步步实现ABAP后台导入EXCEL到数据库【1】

    在SAP的应用当中,导入.导出EXCEL文件的情况是一个常见的需求,有时候用户需要将大量数据定期导入到SAP的数据库中.这种情况下,使用导入程序在前台导入可能要花费不少的时间,如果能安排导入程序为后台 ...

  7. oracle数据库表excel文件位置,“如何将excel表格数据导入到oracle数据库对应的表中?“数据库文件导入excel表格数据库中...

    如何实现Excel表格自动导入到数据库 库?是什么数据库?sql?access?mysql?我以sql2008为例子 1.打开SQL Server Management Studio-任务-数据 2. ...

  8. 动态化超详细完善的Excel动态导入Mysql,支持导入不同表,集成后只需配置就可以实现动态导入excel到数据库

    文章目录 项目开源代码 项目开源代码 1.环境 gradle Maven 2.需要用到的mysql表 导入数据存储日志信息表[pub_imp_excel_jd_log] 表信息[pub_imp_exc ...

  9. ssm之九 批量导入excel到数据库

    JAVA就业套餐课:https://edu.csdn.net/combo/detail/1230 本案例承接以前的SSM整合系列,针对Oracle中的Dept表做操作,如果单击浏览,则进行批量导入:单 ...

最新文章

  1. Spring JDBC-数据连接泄露解读
  2. Intellij IDEA 默认打开上次项目设置与取消设置
  3. Hive 1.1.1 启动错误
  4. 同步锁ReentrantLock
  5. linux 文件浏览器_浏览Linux文件系统
  6. Windows平台RTMP/RTSP播放器如何实现实时音量调节
  7. java抽组件,基于Java组件与基于请求的框架
  8. 禁止Chrome的缓存
  9. [CF617E]XOR and Favorite Number/[CQOI2018]异或序列
  10. python爬虫初学(3)
  11. 聚宽数据(JQData)本地化解决方案:基于MongoDB
  12. chrome 打开默认页 被篡改_chrome默认首页被修改如何解决_chrome首页被篡改的处理办法-系统城...
  13. 遥感影像地图分类识别的研究与实现
  14. C#编程-47:选择类控件复习笔记
  15. flutter全屏背景图(包括appbar和状态栏)以及沉浸状态栏的设置
  16. Arcgis经纬线标注设置(英文、刻度显示)
  17. 201819102040张辰飞
  18. Chrome无法安装axure插件
  19. mysql中计算两个日期的时间差函数TIMESTAMPDIFF用法
  20. 禁止win7系统flash插件自动更新教程【系统天地】

热门文章

  1. POJ 1611 嫌疑犯
  2. 在Eclipse中使用“Ctrl+Alt+上下箭头”快速复制快捷键导致屏幕旋转
  3. php二进制应用位运算,【转】PHP 位运算应用口诀
  4. 集聚新潮流:iOS音乐合成器七大亮星
  5. 你还在为怎么学习烦恼嘛?思维导图学习法
  6. PTA 习题3-5 三角形判断
  7. 医疗时鲜(Running)资讯(ZSSURE):谈谈“reMed,重构医疗生态”大会
  8. python爬取名言和商品信息
  9. ZY Player for Mac(影视观影神器) v2.7.2中文版
  10. Java中使用for循环打印直角三角形,倒立直角三角形,等腰三角形,平行四边形,菱形等