.net导入excel数据到数据库中
在开发过程中我们经常面临着需要将数据导出或者导入到系统中,例如一些生产管理系统,项目管理系统等等都会有这样的需求;
将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数据到数据库中的更多相关文章
- MYSQL 导入Excel数据到数据库中
1,先把excel的数据整理整齐,如每列都要保持同样的格式:就一列一列的数据: 2,导出excel的数据为CSV格式,即把excel的数据另存为xxxx.csv;: 3,用EditPlus工具将xxx ...
- 【转】 如何导入excel数据到数据库,并解决导入时间格式问题
在办公环境下,经常会用到处理excel数据,如果用写程序导入excel数据到数据库那就太麻烦了,涉及解析excel,还要各种格式问题,下面简单利用数据库本身支持的功能解决这类导入问题. 准备 创建表 ...
- 上传excel数据到数据库中
上传excel表格数据到数据库 导入固定路径下的excel数据到数据库 <form id="disposeFlightDataForm" action="../up ...
- 导入excel数据到数据库
1.上传excel到服务器 jsp页面代码 <form action="actionname" method="post" id="form1& ...
- java 使用poi 导入Excel 数据到数据库
由于我个人电脑装的Excel是2016版本的,所以这地方我使用了XSSF 方式导入 . 1先手要制定一个Excel 模板 把模板放入javaWeb工程的某一个目录下如图: 2模板建好了后,先实现模板下 ...
- PHP 导入Excel数据 到数据库
/** * 导入excel * @throws \PHPExcel_Exception * @throws \PHPExcel_Reader_Exception */ public function ...
- java 对excel操作导入excel数据到数据库
加入jar包jxl.jar ===================services层掉用工具类==================================== // 导入 public Lis ...
- asp.net 导入Excel记录到数据库中
常用到的一个数据库导入功能,这样的话就省了很大一部分时间来处理程序上的问题而不是无休止的重复复制粘贴动作. 其他的废话不多说,直接上代码: 前提条件: 根目录下建立uploadfiles文件夹(用于保 ...
- 如何批量导入excel数据至数据库(MySql)--工具phpMyAdmin
之前由于数据储存使用excel保存了所有数据,经过初步数据筛选,数据量近4000条.一条一条录入数据库显然是不可行的.以下是我所操作的步骤: 1.只保留excel的数据部分,去除第一行的具体说明 2. ...
随机推荐
- My first win32 application program
#include<afxwin.h>#include<afx.h>#define _AFXDLLclass CHelloApp :public CWinApp{public: ...
- SpringMVC注解开发初步
一.(补充)视图解析器---XmlViewResolver 作用:分离配置信息. 在视图解析器---BeanNameViewResolver的基础之上进行扩充,新建一个myView.xml分离信息 在 ...
- 【IDEA】intellij idea 插件推荐
CSDN 2016博客之星评选结果公布 [系列直播]零基础学习微信小程序! "我的2016"主题征文活动 博客的神秘功能 [IDEA]intellij idea ...
- [.NET逆向] 破解NET的四大神器
原本这篇文章可以更早一星期写出来与大家分享,由于某方面的原因耽搁到现在,心里竟有那么一点好像对不住大家的感觉.这当然与神器有关,因为我发现利用这四大神器我似乎觉得几乎所有的NET程序破解都不在话下了 ...
- http status 301/302 & java重定向/转发
一.301/3021.什么是301转向?什么是301重定向? 301转向(或叫301重定向,301跳转)是当用户或搜索引擎向网站服务器发出浏览请求时,服务器返回的HTTP数据流中头信息(header) ...
- PHP基础语法
PHP:超级文本预处理器一,PHP的四对标记 <?php ?> <script language="php"> <script> ...
- ssh无密码登录The authenticity of host 'localhost (::1)' can't be established.
The authenticity of host 'localhost (::1)' can't be established. http://blog.csdn.net/cyuyan112233/a ...
- 关于AngularJS(1)
在讲正题之前,先说一下有关angular简介方面的信息: 1. angularJS 诞生于2009年,由Misko Hevery 等人创建,后为Google所收购.是一款优秀的前端JS框架,已经 ...
- MVC系列——MVC源码学习:打造自己的MVC框架(二:附源码)
前言:上篇介绍了下 MVC5 的核心原理,整篇文章比较偏理论,所以相对比较枯燥.今天就来根据上篇的理论一步一步进行实践,通过自己写的一个简易MVC框架逐步理解,相信通过这一篇的实践,你会对MVC有一个 ...
- 数塔取数 基础dp
从低端向上,每个结点取下一层左右结点最大值和本身价值相加,dp[0][0]为最后结果 #include<iostream> #include<algorithm> #inclu ...