在开发过程中我们经常面临着需要将数据导出或者导入到系统中,例如一些生产管理系统,项目管理系统等等都会有这样的需求;

将excel数据到系统中思路:获取excel中每一行的数据,然后存入集合中,批量添加到数据库对应的表中;

下面的demo是将财务部的工资表导入到系统中,细节有待完善。

protected void BtnUpload_Click(object sender, EventArgs e)

{

#region 导入数据到工资表中
string filepath = salaryDAL.GetFilePathByKeyField(this.Number.Text);
string path = filepath.Replace("HumanResources/Gongzi/", "");
path = Server.MapPath(path);//获取excel文件路径
FileStream files = new FileStream(path, FileMode.Open, FileAccess.Read);//读取文件流
NPOI.SS.UserModel.IWorkbook workbook = WorkbookFactory.Create(files);
//读取sheet
var sheet = workbook.GetSheetAt(0);
var index = sheet.LastRowNum;
for (int i = 1; i <= index; i++)
{

  //注意:for循环中变量 i 的初始值为excel中元数据的行号,我的excel格式:0为表头 ,所以从1开始读取
  var row = sheet.GetRow(i);
  Salary model = new Salary();
  #region 获取单元格的值并赋值給实体对象
  model.RealName = row.GetCell(1).StringCellValue;
  model.UserNo = row.GetCell(2).NumericCellValue.ToString();
  model.Property = row.GetCell(3).StringCellValue;
  model.WorkDaies = Convert.ToInt32(row.GetCell(4).NumericCellValue);
  model.Holidaies = Convert.ToInt32(row.GetCell(5).NumericCellValue);
  model.BasicSalary = Convert.ToDecimal(row.GetCell(6).NumericCellValue);
  model.PostSalary = Convert.ToDecimal(row.GetCell(7).NumericCellValue);
  model.PostAllowance = Convert.ToDecimal(row.GetCell(8).NumericCellValue);
  model.Pension = Convert.ToDecimal(row.GetCell(9).NumericCellValue);
  model.Medical = Convert.ToDecimal(row.GetCell(10).NumericCellValue);

  ...........

  model.DaoZhangDate = Convert.ToDateTime(DateTime.Now.ToShortDateString());
  #endregion

//也可以将model存到集合中,将集合包含在事务中,循环将集合中的元素新增到数据库中,从而保证数据一致性
  int id = salaryDAL.Add(model);
}

files.Dispose();
base.Response.Write("<script language=javascript>alert('工资导入成功!');window.location.href='SalaryExport.aspx'</script>");
#endregion

}

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

  1. MYSQL 导入Excel数据到数据库中

    1,先把excel的数据整理整齐,如每列都要保持同样的格式:就一列一列的数据: 2,导出excel的数据为CSV格式,即把excel的数据另存为xxxx.csv;: 3,用EditPlus工具将xxx ...

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

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

  3. 上传excel数据到数据库中

    上传excel表格数据到数据库 导入固定路径下的excel数据到数据库 <form id="disposeFlightDataForm" action="../up ...

  4. 导入excel数据到数据库

    1.上传excel到服务器 jsp页面代码 <form action="actionname" method="post" id="form1& ...

  5. java 使用poi 导入Excel 数据到数据库

    由于我个人电脑装的Excel是2016版本的,所以这地方我使用了XSSF 方式导入 . 1先手要制定一个Excel 模板 把模板放入javaWeb工程的某一个目录下如图: 2模板建好了后,先实现模板下 ...

  6. PHP 导入Excel数据 到数据库

    /** * 导入excel * @throws \PHPExcel_Exception * @throws \PHPExcel_Reader_Exception */ public function ...

  7. java 对excel操作导入excel数据到数据库

    加入jar包jxl.jar ===================services层掉用工具类==================================== // 导入 public Lis ...

  8. asp.net 导入Excel记录到数据库中

    常用到的一个数据库导入功能,这样的话就省了很大一部分时间来处理程序上的问题而不是无休止的重复复制粘贴动作. 其他的废话不多说,直接上代码: 前提条件: 根目录下建立uploadfiles文件夹(用于保 ...

  9. 如何批量导入excel数据至数据库(MySql)--工具phpMyAdmin

    之前由于数据储存使用excel保存了所有数据,经过初步数据筛选,数据量近4000条.一条一条录入数据库显然是不可行的.以下是我所操作的步骤: 1.只保留excel的数据部分,去除第一行的具体说明 2. ...

随机推荐

  1. hdu2848 Visible Trees (容斥原理)

    题意: 给n*m个点(1 ≤ m, n ≤ 1e5),左下角的点为(1,1),右上角的点(n,m),一个人站在(0,0)看这些点.在一条直线上,只能看到最前面的一个点,后面的被档住看不到,求这个人能看 ...

  2. LinkedList<E>源码分析

    LinkedList的数据结构就是双向链表,如下所示: private static class Node<E> { E item;//数据元素 Node<E> next;// ...

  3. codevs 1164 统计数字

    时间限制: 1 s  空间限制: 128000 KB  题目等级 : 白银 Silver 题目描述 Description [问题描述]某次科研调查时得到了n个自然数,每个数均不超过150000000 ...

  4. [LeetCode] Invert Binary Tree 翻转二叉树

    Invert a binary tree. 4 / \ 2 7 / \ / \ 1 3 6 9 to 4 / \ 7 2 / \ / \ 9 6 3 1 Trivia: This problem wa ...

  5. html你可能还不知道的一些知识点

    一.标签语义化 html标签语义化是让大家直观的认识标签和属性的用途和作用,好处最主要的是对搜索引擎友好. Eg: 1.如果你想在页面中突出"奥巴马"这三个字,让搜索引擎重视它,如 ...

  6. Oracle的一些操作

    . 创建用户 Create user 用户名 identified by "密码"; 例如:create user ghc_ez identified by "ghc_2 ...

  7. cocos2d-x屏幕分辨率,窗口大小总结

    这个东西很烦人,相信很多人都不理解 今天来总结一下,首先有很多概念都要事先弄得清楚明白 1.屏幕分辨率 所谓屏幕分辨率相信很多人都知道他的概念,不就是1280pxX720PX吗?不就是这种形式吗?有什 ...

  8. BOM以及定时器

    一.BOM 1.操作浏览器的一些方法 (浏览器对象模型) 2.window是is中的顶级变量,是一个全局的变量,所有人都可以访问到它,基本 的方法和属性 (document,alert,console ...

  9. Leetcode 69. Sqrt(x)

    Implement int sqrt(int x). 思路: Binary Search class Solution(object): def mySqrt(self, x): "&quo ...

  10. POJ2096 Collecting Bugs

    Time Limit: 10000MS   Memory Limit: 64000K Total Submissions: 5090   Accepted: 2529 Case Time Limit: ...