直接上代码

1、页面展示

<div class="panel-heading font-bold text-center"><i class="fa fa-edit"></i><strong>用户导入功能</strong></div><div class="panel-body"><form action="#" class="form-horizontal"method="post"><div class="form-group" style="display:none;"><label class="col-sm-2 control-label">会议Id<span class="text-danger">*</span></label><div class="col-sm-8"><input type="text" class="form-control w-300 iblock" id="conId" name="conId" value="<%=conId %>" datatype="*" nullmsg="请填写会议Id"></div></div><div class="form-group" style="display:none;"><label class="col-sm-2 control-label">会议简称<span class="text-danger">*</span></label><div class="col-sm-8"><input type="text" class="form-control w-300 iblock" id="fromWhere" name="fromWhere" value="<%=fromWhere %>" datatype="*" nullmsg="请填写会议简称"></div></div><div class="form-group"><label class="col-sm-2 control-label">注册类型<span class="text-danger">*</span></label><div class="col-sm-8"><select id="seanceId" class="form-control"><option value="-1">请选择注册类型</option></select></div></div><div class="form-group"><label class="col-sm-2 control-label">团队名称(用于导入团队)<span class="text-danger"></span></label><div class="col-sm-8"><input type="text" class="form-control w-300 iblock" id="teamName" name="teamName" datatype="*" nullmsg="请填写会议简称"></div></div><div class="form-group"><label class="col-sm-2 control-label">上传Excel文件<span class="text-danger">*</span></label><div class="col-sm-8"><input type="file" class="form-control w-300 iblock" id="importFile" style="display:none"/><button class="btn btn-lg btn-primary" id="selectFile" type="button">选择文件</button></div></div><div class="form-group"><label class="col-sm-2 control-label"><span class="text-danger"></span></label><div id="daoru" class="col-sm-8 text-center"><button class="btn btn-lg btn-primary" type="button" id="importBtn">导入</button></div></div></form></div>

2、js数据提交

$("#importBtn").click(function(){if($("#conId").val() == ""){alert("请填写会议Id");return;}if($("#fromWhere").val() == ""){alert("请填写会议的简称");return;}if($("#importFile").val() == ''){alert("请选择上传的文件")return;}if($("#seanceId").val() == -1){alert("请选择注册类型");return;}else{$("#daoru").html("导入中...");}setTimeout(function(){var formData = new FormData();var teamName = encodeURIComponent($("#teamName").val());var conId = $("#conId").val();formData.append("importFile", $("#importFile")[0].files[0]);formData.append("fromWhere", $("#fromWhere").val());formData.append("teamName",teamName);formData.append("conId",conId);formData.append("seanceId",$("#seanceId").val());$.ajax({url: "/import.do?importUser",type: 'POST',data: formData,dataType:"json",// 告诉jQuery不要去处理发送的数据processData: false,// 告诉jQuery不要去设置Content-Type请求头contentType: false,cache:false,ifModified:true,async:false,beforeSend: function () {console.log("正在进行,请稍候");},success: function (json) {if (json.state == 1) {alert("导入完成");window.location.reload();//$("#selectFile").html("选择文件");} else {alert(json.msg);return;}},error: function (json) {console.log("error");}});},100)})

3、后台数据处理

@RequestMapping(params = "importUser",method = RequestMethod.POST)public void importUser(Integer conId,Integer seanceId,HttpServletRequest request,HttpServletResponse response){try {MultipartHttpServletRequest mRequest = (MultipartHttpServletRequest) request;MultipartFile mFile = mRequest.getFile("importFile");String fromWhere = request.getParameter("fromWhere");String teamName = request.getParameter("teamName");teamName = URLDecoder.decode(teamName,"UTF-8");UserInfo teamUser = null;if(teamName.length() > 0){//要创建团队System.out.println(teamName);teamUser = userinfoService.getTeamUser(fromWhere,teamName);if(teamUser == null){teamUser = new UserInfo();teamUser.setTrueName(teamName);teamUser.setDanwei(teamName);teamUser.setHospitalName(teamName);teamUser.setIsTeam(1);teamUser.setIsTeamLeader(1);teamUser.setFromWhere(fromWhere);teamUser.setConferencesId(conId);userinfoService.saveOrUpdate(teamUser);teamUser.setTeamId(teamUser.getUserInfoId());userinfoService.saveOrUpdate(teamUser);}}InputStream is = mFile.getInputStream();if(is!=null){Workbook rwb = WorkbookFactory.create(is);int rowCount = 0;Sheet st = rwb.getSheetAt(0);Iterator<?> it=  st.rowIterator();            String [] tableHead = null;for(; it !=null && it.hasNext();){Row row = (Row)it.next();if(row==null){it = null;continue;}if(row.getCell(0)==null || row.getCell(0).getStringCellValue() == null ||row.getCell(0).getStringCellValue().length() == 0){it = null;continue;}if(rowCount == 0){int columnNum = row.getPhysicalNumberOfCells();tableHead = new String[columnNum];for(int i = 0; i< tableHead.length;i++){Cell cell = row.getCell(i);String headStr = cell.getStringCellValue();tableHead[i] = headStr;}}else{UserInfo userInfo  = new UserInfo();userInfo.setFromWhere(fromWhere);for(int j = 0;j < tableHead.length;j++){Cell cell = row.getCell(j);String value = "";if(cell == null || cell.equals("") || cell.getCellType() ==HSSFCell.CELL_TYPE_BLANK){ }else{value = getCellValue(cell);}if (value!="") {String tablePropertyName = tableHead[j].substring(3,tableHead[j].length());tablePropertyName = tablePropertyName.substring(0, 1).toLowerCase()+tablePropertyName.substring(1,tablePropertyName.length());String type = userInfo.getClass().getDeclaredField(tablePropertyName).getGenericType().toString();if(type.equals("class java.lang.String")){Method method = userInfo.getClass().getMethod(tableHead[j],new Class[] { String.class });method.invoke(userInfo,new Object[]{new String(value)});}if(type.equals("class java.lang.Integer")){value = value==""?"0":value;Method method = userInfo.getClass().getMethod(tableHead[j],new Class[] { Integer.class });method.invoke(userInfo,new Object[]{new Integer(value)});}}}/*if(teamName.length() == 0){//个人导入UserInfo saveUserInfo = userinfoService.getUserInfoByNameAndMobile(fromWhere,userInfo.getTrueName(),userInfo.getMobilePhone());if(saveUserInfo == null){saveUserInfo = userinfoService.getUserINfoByNameAndEmail(fromWhere,userInfo.getTrueName(),userInfo.getEmail());if(saveUserInfo == null){Hospital hospital = mainService.getProvinceByName(userInfo.getProvince());if(hospital != null){userInfo.setProvince(String.valueOf(hospital.getProvinceId()));userInfo.setCity(String.valueOf(hospital.getCityId()));}userInfo.setConferencesId(conId);userinfoService.saveOrUpdate(userInfo);}}}else if(teamName.length() > 0){//团队导入UserInfo saveUserInfo = userinfoService.getUserInfoByName(fromWhere,userInfo.getTrueName());Hospital province = mainService.getProvinceByName(userInfo.getProvinceName());if(province != null){userInfo.setProvince(String.valueOf(province.getHospitalId()));}Hospital city = mainService.getCityByName(userInfo.getCityName());if(city != null){userInfo.setCity(String.valueOf(city.getHospitalId()));}if(saveUserInfo != null && saveUserInfo.getIsVip() != null && saveUserInfo.getIsVip() == 1){userInfo.setIsVip(-1);}userInfo.setTeamId(teamUser.getUserInfoId());userInfo.setIsTeam(1);userInfo.setIsTeamMember(1);userInfo.setConferencesId(conId);userinfoService.saveOrUpdate(userInfo);}*/if(userInfo != null){if(userInfo.getProvinceName() != null && userInfo.getProvinceName().length() >0){String provinceName = userInfo.getProvinceName().replace("自治区", "").replace("省", "").replace("市", "");Hospital province = mainService.getProvinceByLikeName(provinceName);if(province != null){userInfo.setProvince(String.valueOf(province.getHospitalId()));}}if(userInfo.getCityName() != null && userInfo.getCityName().length() >0){String cityName = userInfo.getCityName().replace("市", "");Hospital city = mainService.getCityByLikeName(cityName);if(city != null){userInfo.setCity(String.valueOf(city.getHospitalId()));}}}if(teamName.length() > 0){//团队导入UserInfo saveUserInfo = userinfoService.getUserInfoByName(fromWhere,userInfo.getTrueName());if(saveUserInfo != null && saveUserInfo.getIsVip() != null && saveUserInfo.getIsVip() == 1){userInfo.setIsVip(-1);}userInfo.setTeamId(teamUser.getUserInfoId());userInfo.setIsTeam(1);userInfo.setIsTeamMember(1);}userInfo.setConferencesId(conId);userinfoService.saveOrUpdate(userInfo);/*注册类型*/if(seanceId != null && seanceId + 1 !=0){ChcRegUser chcRegUser = webService.getChcRegUser(userInfo.getUserInfoId());if(chcRegUser == null){chcRegUser = new ChcRegUser();chcRegUser.setCreateTime(new Date());}chcRegUser.setPaymentMethod(1);chcRegUser.setConferencesId(Integer.valueOf(conId));Seance seance = webService.getSeanceById(seanceId);chcRegUser.setPay(seance.getPrice().intValue());   //应缴费chcRegUser.setHasPay(0);        //已缴费chcRegUser.setQianPay(seance.getPrice().intValue());   //欠费
                                chcRegUser.setSeanceId(seanceId);chcRegUser.setSeance(seance.getSeanceContent());chcRegUser.setEnSeance(seance.getEnSeanceContent()==null?"":seance.getEnSeanceContent());chcRegUser.setUserId(userInfo.getUserInfoId());chcRegUser.setStateType(0);chcRegUser.setPayType(2);webService.saveObject(chcRegUser);userInfo.setJobNumber(chcRegUser.getChcRegUserId());userInfo.setPayState(0);webService.saveObject(userInfo);}}rowCount++;System.out.println(rowCount);}}writeJson(response, new JSONObject().accumulate("state", 1).toString());} catch (Exception e) {e.printStackTrace();}}

转载于:https://www.cnblogs.com/jichuang/p/10033793.html

利用类的反射导入excel示例相关推荐

  1. 利用PHP-ExcelReader实现PHP导入Excel数据[不通过CSV]

    最近因项目需求,要实现将excel文件通过php页面导入mysql数据库中.在网上搜了很多这方面的资料,发现都是将excel文件另存为csv文件,然后从csv文件导入.这里介绍一个直接将excel文件 ...

  2. 浅析如何通过PHP类的反射来实现依赖注入

    PHP具有完整的反射 API,提供了对类.接口.函数.方法和扩展进行逆向工程的能力.通过类的反射提供的能力我们能够知道类是如何被定义的,它有什么属性.什么方法.方法都有哪些参数,类文件的路径是什么等很 ...

  3. 类的反射(EKT技术)

    类的反射 | | reflect 提供类和接口,以获得关于类和对象的反射信息 1.实现了反射的类: Class类:代表一个类. Field 类:代表类的成员变量(成员变量也称为类的属性). Metho ...

  4. golang利用反射写入excel的简单工具类

    golang利用反射写入excel的简单工具类 工具类源码 使用方法 工具类源码 package excelimport ("errors""github.com/tea ...

  5. Java基于注解和反射导入导出Excel

    代码地址如下: http://www.demodashi.com/demo/11995.html 1. 构建项目 使用Spring Boot快速构建一个Web工程,并导入与操作Excel相关的POI包 ...

  6. Java导入Excel工具类使用教程

    前言: 本工具类提供了Excel导入功能,通过反射机制将Excel中数据映射到实体类中,从而获取Excel数据,工具类依赖org.apache.poi包.支持RESTful API,支持Spring ...

  7. autopoi-web 导入 excel 解决二级表头重复问题(含前端示例)

    文章目录 一.简介 二.导入 autopoi-web 包 三.定义实体类 四.导入方法 五.测试结果 六.前端示例 一.简介 因为模板的 excel 列头不能修改,所以只能在代码层处理,目前我想到的解 ...

  8. java 导出excel 注解_Java基于注解和反射导入导出Excel

    list = ei.getDataList(User.class); for (User user : list){ try{ //to do: 保存/处理数据 //userService.save( ...

  9. JAVA工具类(17)--Java导入导出Excel工具类ExcelUtil

    实战 导出就是将List转化为Excel(listToExcel) 导入就是将Excel转化为List(excelToList) 导入导出中会出现各种各样的问题,比如:数据源为空.有重复行等,我自定义 ...

最新文章

  1. Android 动态类加载实现免安装更新
  2. PCA对特征点描述子降维
  3. python-解码 decode 报错的问题
  4. MySql5.6版修改用户登录密码
  5. Android系统(122)---MTK 平台如何打开ActivityManagerService的debug开关
  6. 【更新】怎样免费下载百度文库文档
  7. Ansys多核仿真报错解决办法
  8. arrayblockingqueue java_Java ArrayBlockingQueue take()用法及代码示例
  9. 读研了,博客不更新嘞
  10. C#导入导出数据到Excel的通用类源码
  11. mysql导出txt文件报错_mysql导入txt文件
  12. 南京邮电大学计算机专业录取分数线2019,南京邮电大学录取分数线
  13. 论文成功写作技巧之行之有效的写作从“结果”开始(下)
  14. Android的Google地图开发
  15. 苹果一代机皇iPhone6S,到底“熬死”了几代安卓手机?这个数字大强大了
  16. 2022年12月电子学会青少年软件编程Scratch(二级)等级考试真题解析
  17. RT-Thread 内存泄漏分析利器 memtrace+ramdump
  18. 个人总结感想系列 - 2013第一季度总结
  19. Simulink仿真代码之step()函数的使用
  20. uni-app授权第三方登录(微信授权登录)

热门文章

  1. python数据挖掘工程师待遇_数据挖掘工程师岗位的具体职责
  2. sql limit不接具体数字_SQL别再秀操作了,这么写吧还是。
  3. 十二月份找工作好找吗_淘宝美工前景怎么样?好找工作吗?
  4. java文件名大小_java 比较指定文件夹内.txt文件名的大小
  5. java 运行环境变量_java 环境变量配置与第一个程序运行
  6. android 8 esp8266,微信硬件平台(八) 1 esp8266从自己的服务器获取token
  7. jmeter执行python脚本,Jmeter+Python-1问题记录jmeter执行Python3的脚本时报 ValueErro
  8. php比较float大小,PHP中两个float(浮点数)比较实例分析
  9. 云服务器可以安装操作系统么,云服务器安装操作系统吗
  10. oracle 性别默认是男_被实名举报“制造性别对立”的杨笠,到底冤不冤?