目录标题

  • 1.最终的效果图
  • 2.开发步骤
    • 2.1 环境配置
    • 2.2 POM 文件的引入
    • 2.3 web开发
    • 2.4 服务端开发

1.最终的效果图

2.开发步骤

2.1 环境配置

环境 版本
Eclipse 2018-12 (4.10.0)
poi 3.14
poi-ooxml 3.14

2.2 POM 文件的引入

<!-- https://mvnrepository.com/artifact/org.apache.poi/poi -->
<dependency>  <groupId>org.apache.poi</groupId>  <artifactId>poi</artifactId>  <version>3.14</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.apache.poi/poi-ooxml -->
<dependency>  <groupId>org.apache.poi</groupId>  <artifactId>poi-ooxml</artifactId>  <version>3.14</version>
</dependency>

2.3 web开发

<script type="text/javascript">function uploadFile() {if($("#userUploadFile").val() == ""){alert("请选择要上传的文件");}else{$("#uploadForm").form("submit", {success : function(data) {var obj = eval('(' + data + ')');if (obj.error == 0) {//插入有误信息var errorStr=obj.errorDesc;if(errorStr.indexOf("**") != -1){for (var i=0;i<100;i++){errorStr= errorStr.replace('**','\n');}$("#err_e").css("display","block");$("#err_info").css("display","block");$("#err_info").text(String(errorStr));}else if(errorStr !=""){$("#err_e").css("display","block");$("#err_info").css("display","block");$("#err_info").text(String(errorStr));}else{$("#err_e").css("display","none");$("#err_info").css("display","none");}//插入成功信息var successStr=obj.successDesc;if(successStr.indexOf("**") != -1){for (var i=0;i<100;i++){successStr= successStr.replace('**','\n');}$("#err_s").css("display","block");$("#success_info").css("display","block");$("#success_info").text(String(successStr));}else{$("#err_s").css("display","none");$("#success_info").css("display","none");}return ;/* parent.showWarning(obj.desc);  *//* location.reload(); */}},error : function(e) {$.messager.alert("系统提示", "操作失败。");}});}}
</script>
<body><div><form id="uploadForm"action="h8h/gpm/partnerEmployee.action?action=excelBatchImport"method="post" enctype="multipart/form-data"><table cellpadding="0" cellspacing="0" border="0"style="width: 600px; margin: 20px auto; text-algin: left;"><tr><td colspan="4"><input id="dyId" type="hidden" /></td></tr><tr><td colspan="3"><ahref="/gpm/downloadExcel/employeeTemplate.xls" id="downloadModel"name="downloadModel" style="margin-left: 7px;"><u>点击下载人员模板</u></a></tr><tr><td colspan="4"><br /></td></tr><tr><td colspan="3"><input type="file" id="userUploadFile"name="model.userUploadFile" style="width: 200px;"></td></tr><!-- background:url('/center/images/uploadImg.png') no-repeat 0px 10px; --><tr><td colspan="4"><br /></td></tr><tr><td colspan="4" style="text-align: center;"><hr style="width: 720px; border-width: 0.3px; margin-left: -10px;"><a href="javascript:void(0)" class="easyui-linkbutton"iconCls="silk-execl" onclick="uploadFile()">上传</a></td></tr></table></form></div><div><table style="width: 300px;">
<tr><td>
<span id="err_e"style="width: 360px; display: none; color: red;text-align:center;" >录入有误提示:</span>
</td><td>
<span id="err_s"style="width: 360px; display: none; color: blue;text-align:center;">录入成功提示:</span>
</td> </tr><tr><td><textarea id="err_info" rows="12" cols="" style="width: 360px; display: none; color: red;text-align:center;"></textarea></td><td><textarea id="success_info" rows="12" cols="" style="width: 360px; display: none; color: blue;text-align:center;"></textarea></td></tr>
</table></div></body>

2.4 服务端开发

    private static final long serialVersionUID = -3456781L;private PartnerEmployeeForm model = new PartnerEmployeeForm();@Overridepublic BaseObject getObject() {// TODO Auto-generated method stubreturn model;}/*** EXCEL 批量导入员工账号*/public void excelBatchImport() throws Exception {//实例化从Excel接收数据的集合 List<PartnerEmployeeForm> listEmployee = new ArrayList<PartnerEmployeeForm>();//实例化返回mapMap<String, String> resMap = new HashMap<String, String>(2);resMap.put("error", "0");StringBuffer errorBuffer = new StringBuffer();StringBuffer successBuffer = new StringBuffer();boolean IsTemplate=false;//判断是否是传输错误if (model.getUserUploadFile()==null) {errorBuffer.append("网络传输参数错误**");}else {// EXCEL 数据解析POIFSFileSystem fs = new POIFSFileSystem(new FileInputStream(model.getUserUploadFile()));HSSFWorkbook wb = new HSSFWorkbook(fs);HSSFSheet hssfSheet = wb.getSheetAt(0); // 获取第一个Sheet页if (hssfSheet != null) {HSSFRow hssfRow0 = hssfSheet.getRow(0);String str0=formatCell(hssfRow0.getCell((short) 0));String str1=formatCell(hssfRow0.getCell((short) 1));String str2=formatCell(hssfRow0.getCell((short) 2));String str3=formatCell(hssfRow0.getCell((short) 3));String str4=formatCell(hssfRow0.getCell((short) 4));String str5=formatCell(hssfRow0.getCell((short) 5));if (str0.trim().equals("所属公司") &&str1.trim().equals("所属部门") &&str2.trim().equals("员工姓名") &&str3.trim().equals("手机号码") &&str4.trim().equals("初始密码") &&str5.trim().equals("收款编码")) {//从第二行开始遍历for (int rowNum = 1; rowNum <= hssfSheet.getLastRowNum(); rowNum++) {HSSFRow hssfRow = hssfSheet.getRow(rowNum);if (hssfRow == null) {continue;}else if (hssfRow.getCell((short) 0)==null &&hssfRow.getCell((short) 1)==null &&hssfRow.getCell((short) 2)==null &&hssfRow.getCell((short) 3)==null &&hssfRow.getCell((short) 4)==null &&hssfRow.getCell((short) 5)==null ) {continue;} //把遍历的数据写入 PartnerEmployeeForm 对象中PartnerEmployeeForm mmodel = new PartnerEmployeeForm();mmodel.setCompanyName(formatCell(hssfRow.getCell((short) 0)));mmodel.setDepartmentName(formatCell(hssfRow.getCell((short) 1)));mmodel.setName(formatCell(hssfRow.getCell((short) 2)));mmodel.setAccountId(formatCell(hssfRow.getCell((short) 3)));mmodel.setPassword(formatCell(hssfRow.getCell((short) 4)));mmodel.setReceiptCodeNo(formatCell(hssfRow.getCell((short) 5)));//公司Id的填入if (mmodel.getCompanyName()!=null) {long companyId=companyService.getpartnerCompanyId(mmodel.getCompanyName());if (companyId>0) {mmodel.setCompanyId(companyId);}}//部门Id的填入if (mmodel.getDepartmentName()!=null) {long departmentId=departmetService.getIdByDepartmentName(mmodel.getDepartmentName());if (departmentId>0) {mmodel.setDepartmentId(departmentId);}}listEmployee.add(mmodel);}//行号int i=1;//批量新增员工账户逻辑for (PartnerEmployeeForm from : listEmployee) {i++;if (from.getCompanyId() == null || from.getAccountId() == null || from.getName() == null|| from.getPassword() == null) {errorBuffer.append("【第 "+i+" 行】"+"参数错误**");} else {int count = service.getEmployeeAccountIdTotal(from);if (count > 0) {errorBuffer.append("【第 "+i+" 行】"+from.getAccountId()+"账号已存在**");} else {int n_count = service.getEmployeeNameTotal(from);if (n_count > 0) {errorBuffer.append("【第 "+i+" 行】"+from.getName()+"该姓名已存在**");} else {from.setPassword(MD5Util.MD5(from.getPassword()));from.setCreator(model.getUserInfo().getUserName());long id = service.saveEmployee(from);if (id > 0) {successBuffer.append("【第 "+i+" 行】"+from.getAccountId()+"账号新增成功**");} else {errorBuffer.append("【第 "+i+" 行】"+from.getAccountId()+"账号新增失败**");}}}} }}else {IsTemplate=true;errorBuffer.append("模板有误,请下载指定人员模板。");}}}if (listEmployee.size()==0 && IsTemplate==false) {errorBuffer.append("数据录入不能为空,导入模板失败。");}resMap.put("errorDesc", errorBuffer.toString());resMap.put("successDesc", successBuffer.toString());ResponseUtil.writeJson(response, resMap);}@SuppressWarnings("deprecation")public static String formatCell(HSSFCell hssfCell){String cellValue = "";if (hssfCell == null) {return null;}DecimalFormat decimalFormat = new DecimalFormat("#");//根据自己的情况进行类型添加switch (hssfCell.getCellType()) {case HSSFCell.CELL_TYPE_NUMERIC:               cellValue=decimalFormat.format(hssfCell.getNumericCellValue()).toString().trim();break;case HSSFCell.CELL_TYPE_STRING:cellValue = hssfCell.getStringCellValue().toString().trim();break;}return cellValue;}
public class PartnerEmployeeForm extends BaseObject{private static final long serialVersionUID = -123456L;private Long id;private Long companyId;           //公司IDprivate String companyName;       //公司名称private Long departmentId; // 部门idprivate String departmentName; //部门名称private String name;              //姓名private String mobile;            //手机号码private String accountId;         //登陆账号private String password;          //密码private Integer status;           //状态(1-有效,0-冻结)private String creator;           //创建人private File userUploadFile;public File getUserUploadFile() {return userUploadFile;}public void setUserUploadFile(File userUploadFile) {this.userUploadFile = userUploadFile;}....get/set....}

Excel 批量导入相关推荐

  1. excel宏转txt替换强制换行符_三个步骤学会用EXCEL批量导入anki题库

    Anki真的是个好用到不想推荐给朋友的软件,本人最近准备刷个新题库,找了一上午找不到原来教我EXCEL导入anki的网页,为了防止我自己过段时间又忘了应该怎么导入,我写了这个教程,写都写了,就顺手发出 ...

  2. 订餐系统之Excel批量导入

    批量导入现在基本已经成为各类系统的标配了,当前,我们订餐系统也不例外,什么商家呀.商品呀.优惠码之类的,都少不了.毕竟嘛,对非开发人员来说,看到Excel肯定比看到很多管理系统还是要亲切很多的.这里, ...

  3. php批量添加excel数据库表,php 把excel批量导入到数据库代码

    php 把excel批量导入到数据库代码 我们是利用了ExcelFileParser这个扩展来处理的哦, Excel数据获取演示 Excel数据获取演示 /** * CopyRight (c) 200 ...

  4. excel批量导入数据

    这个功能也是我以前项目中经常用到的,感觉很实用,必须拿来分享下: excel进行批量导入数据,结合struts2+ajax 导入的视图:batchAdd.ftl(视图无关紧要的,可以换成其他任何视图, ...

  5. 【转帖】Java实现Excel批量导入数据

    这篇文章主要为大家详细介绍了Java实现Excel批量导入数据,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下 Excel的批量导入是很常见的功能,这里采用Jxl实现,数 ...

  6. SpringMVC框架通过Excel批量导入数据

    文章目录 SpringMVC框架通过Excel批量导入数据 1.导入需要的jar包 2.配置文件 3.创建Java对象类 4.解析Excel表格数据的工具类 5.前端请求 6.Controller处理 ...

  7. Excel批量导入图片并在右侧单元格备注名称

    如下图所示,小编要分享的是,Excel批量导入图片并在右侧单元格备注名称的操作 (方方格子插件) 1.先看动图演示吧 2.选中A2第一个需要添加图片的单元格 3.然后选择方方格子的图片工具 4.那我们 ...

  8. Spring Boot 实现excel 批量导入数据(模板下载 ->数据导入->导入失败表格下载)

    批量导入数据以用户为例[不贴数据库操作代码,都是简单的插入和查询操作自己写] 1 导入依赖 2 批量导入模板下载 3 批量导入数据 准备工作 实现代码 测试接口 4 下载导入失败表格 5 实体类 6 ...

  9. Springboot Excel批量导入数据

    POI处理Excel <!-- poi处理excel --><dependency><groupId>org.apache.poi</groupId>& ...

  10. excel批量导入图片的方法和例子

    内容提要:文章分享了三个excel批量导入图片的典型案例:查找对应姓名的照片.批量导入图片等等,并提供附件下载.对Excel感兴趣的朋友可加 Excel学习交流群:284029260(www.itbl ...

最新文章

  1. React.js 小书 Lesson5 - React.js 基本环境安装
  2. 全球及中国抗痛风剂行业发展调研及投资可行性评估报告2021-2027年版
  3. 研华电脑510上电自启_研华工控机怎么设置u盘启动_研华工控机U盘引导方法
  4. Java EE:基础知识
  5. bgb邻居关系建立模型_今日 Paper | 新闻推荐系统;多路编码;知识增强型预训练模型等...
  6. Valgrind的Memcheck快速入门
  7. 流水灯verilog实验原理_流水灯实验
  8. linux学习之用户的切换
  9. nginx websocket wss 连接失败 failed_浅谈WebSocket协议、WS协议和WSS协议原理及关系
  10. 视频编解码(十五):解码器解码查错步骤
  11. 传输层协议(6):TCP 连接(下-3)
  12. JAVA中super和this关键字的区别
  13. 神一样的产品经理——基于移动与互联网产品实践
  14. 无聊的小知识--数据中心为啥要建在山区
  15. 扫描问题 无法识别计算机,我的扫描枪插进去显示无法识别怎么办
  16. 圆桌实录 | 为什么不约而同选择了大 Kernel
  17. Windows下mysql5.7修改root密码
  18. win10强制关闭飞行模式_让你的电脑1台变n台 win10自带虚拟机Hyper-V讲解
  19. 京东云php环境配置,干货 | 京东云应用负载均衡(ALB)多功能实操
  20. 完了!服务器沦为肉鸡了!排查过程!

热门文章

  1. 流浪在繁华的城市中日复一日
  2. 手写算法—Python代码实现一元线性回归
  3. 通过微软认证所需费用
  4. 经典算法:双指针问题--数组合并
  5. Ubuntu之which查看命令所在位置
  6. 骁龙相机动态设置选项卡
  7. 逻辑地址、物理地址、虚拟地址
  8. 周浩正:写给编辑人的信 繁盛的秘诀之一
  9. 【电路方案】基于单片机智能市电温度控制系统设计-基于单片机RGB颜色智能识别系统设计-基于单片机四路红外遥控开关电路设计-基于单片机自行车自动防盗报警系统设计-基于单片机智能无线病床呼叫系统设计
  10. SQL手工注入原理万能密码及默认密码登陆后台