直接上代码

1、页面展示

  1. <div class="panel-heading font-bold text-center">
  2. <i class="fa fa-edit"></i><strong>用户导入功能</strong>
  3. </div>
  4. <div class="panel-body">
  5. <form action="#" class="form-horizontal"
  6. method="post">
  7. <div class="form-group" style="display:none;">
  8. <label class="col-sm-2 control-label">
  9. 会议Id
  10. <span class="text-danger">*</span>
  11. </label>
  12. <div class="col-sm-8">
  13. <input type="text" class="form-control w-300 iblock" id="conId" name="conId" value="<%=conId %>" datatype="*" nullmsg="请填写会议Id">
  14. </div>
  15. </div>
  16. <div class="form-group" style="display:none;">
  17. <label class="col-sm-2 control-label">
  18. 会议简称
  19. <span class="text-danger">*</span>
  20. </label>
  21. <div class="col-sm-8">
  22. <input type="text" class="form-control w-300 iblock" id="fromWhere" name="fromWhere" value="<%=fromWhere %>" datatype="*" nullmsg="请填写会议简称">
  23. </div>
  24. </div>
  25. <div class="form-group">
  26. <label class="col-sm-2 control-label">
  27. 注册类型
  28. <span class="text-danger">*</span>
  29. </label>
  30. <div class="col-sm-8">
  31. <select id="seanceId" class="form-control">
  32. <option value="-1">请选择注册类型</option>
  33. </select>
  34. </div>
  35. </div>
  36. <div class="form-group">
  37. <label class="col-sm-2 control-label">
  38. 团队名称(用于导入团队)
  39. <span class="text-danger"></span>
  40. </label>
  41. <div class="col-sm-8">
  42. <input type="text" class="form-control w-300 iblock" id="teamName" name="teamName" datatype="*" nullmsg="请填写会议简称">
  43. </div>
  44. </div>
  45. <div class="form-group">
  46. <label class="col-sm-2 control-label">
  47. 上传Excel文件
  48. <span class="text-danger">*</span>
  49. </label>
  50. <div class="col-sm-8">
  51. <input type="file" class="form-control w-300 iblock" id="importFile" style="display:none"/>
  52. <button class="btn btn-lg btn-primary" id="selectFile" type="button">选择文件</button>
  53. </div>
  54. </div>
  55. <div class="form-group">
  56. <label class="col-sm-2 control-label">
  57. <span class="text-danger"></span>
  58. </label>
  59. <div id="daoru" class="col-sm-8 text-center">
  60. <button class="btn btn-lg btn-primary" type="button" id="importBtn">导入</button>
  61. </div>
  62. </div>
  63. </form>
  64.  
  65. </div>

2、js数据提交

  1. $("#importBtn").click(function(){
  2. if($("#conId").val() == ""){
  3. alert("请填写会议Id");
  4. return;
  5. }
  6. if($("#fromWhere").val() == ""){
  7. alert("请填写会议的简称");
  8. return;
  9. }
  10. if($("#importFile").val() == ''){
  11. alert("请选择上传的文件")
  12. return;
  13. }
  14. if($("#seanceId").val() == -){
  15. alert("请选择注册类型");
  16. return;
  17. }else{$("#daoru").html("导入中...");}
  18. setTimeout(function(){
  19. var formData = new FormData();
  20. var teamName = encodeURIComponent($("#teamName").val());
  21. var conId = $("#conId").val();
  22. formData.append("importFile", $("#importFile")[].files[]);
  23. formData.append("fromWhere", $("#fromWhere").val());
  24. formData.append("teamName",teamName);
  25. formData.append("conId",conId);
  26. formData.append("seanceId",$("#seanceId").val());
  27. $.ajax({
  28. url: "/import.do?importUser",
  29. type: 'POST',
  30. data: formData,
  31. dataType:"json",
  32. // 告诉jQuery不要去处理发送的数据
  33. processData: false,
  34. // 告诉jQuery不要去设置Content-Type请求头
  35. contentType: false,
  36. cache:false,
  37. ifModified:true,
  38. async:false,
  39. beforeSend: function () {
  40. console.log("正在进行,请稍候");
  41. },
  42. success: function (json) {
  43. if (json.state == ) {
  44. alert("导入完成");
  45. window.location.reload();
  46. //$("#selectFile").html("选择文件");
  47. } else {
  48. alert(json.msg);
  49. return;
  50. }
  51. },
  52. error: function (json) {
  53. console.log("error");
  54. }
  55. });
  56. },)
  57. })

3、后台数据处理

  1. @RequestMapping(params = "importUser",method = RequestMethod.POST)
  2. public void importUser(Integer conId,Integer seanceId,HttpServletRequest request,HttpServletResponse response){
  3. try {
  4. MultipartHttpServletRequest mRequest = (MultipartHttpServletRequest) request;
  5. MultipartFile mFile = mRequest.getFile("importFile");
  6. String fromWhere = request.getParameter("fromWhere");
  7. String teamName = request.getParameter("teamName");
  8. teamName = URLDecoder.decode(teamName,"UTF-8");
  9. UserInfo teamUser = null;
  10. if(teamName.length() > ){//要创建团队
  11. System.out.println(teamName);
  12. teamUser = userinfoService.getTeamUser(fromWhere,teamName);
  13. if(teamUser == null){
  14. teamUser = new UserInfo();
  15. teamUser.setTrueName(teamName);
  16. teamUser.setDanwei(teamName);
  17. teamUser.setHospitalName(teamName);
  18. teamUser.setIsTeam();
  19. teamUser.setIsTeamLeader();
  20. teamUser.setFromWhere(fromWhere);
  21. teamUser.setConferencesId(conId);
  22. userinfoService.saveOrUpdate(teamUser);
  23. teamUser.setTeamId(teamUser.getUserInfoId());
  24. userinfoService.saveOrUpdate(teamUser);
  25. }
  26. }
  27. InputStream is = mFile.getInputStream();
  28. if(is!=null)
  29. {
  30. Workbook rwb = WorkbookFactory.create(is);
  31. int rowCount = ;
  32. Sheet st = rwb.getSheetAt();
  33. Iterator<?> it= st.rowIterator();
  34. String [] tableHead = null;
  35. for(; it !=null && it.hasNext();){
  36. Row row = (Row)it.next();
  37. if(row==null)
  38. {
  39. it = null;
  40. continue;
  41. }
  42. if(row.getCell()==null || row.getCell().getStringCellValue() == null ||row.getCell().getStringCellValue().length() == )
  43. {
  44. it = null;
  45. continue;
  46. }
  47. if(rowCount == ){
  48. int columnNum = row.getPhysicalNumberOfCells();
  49. tableHead = new String[columnNum];
  50. for(int i = ; i< tableHead.length;i++){
  51. Cell cell = row.getCell(i);
  52. String headStr = cell.getStringCellValue();
  53. tableHead[i] = headStr;
  54. }
  55. }else{
  56. UserInfo userInfo = new UserInfo();
  57. userInfo.setFromWhere(fromWhere);
  58. for(int j = ;j < tableHead.length;j++){
  59. Cell cell = row.getCell(j);
  60. String value = "";
  61. if(cell == null || cell.equals("") || cell.getCellType() ==HSSFCell.CELL_TYPE_BLANK){
  62.  
  63. }else{
  64. value = getCellValue(cell);
  65. }
  66. if (value!="") {
  67. String tablePropertyName = tableHead[j].substring(,tableHead[j].length());
  68. tablePropertyName = tablePropertyName.substring(, ).toLowerCase()+tablePropertyName.substring(,tablePropertyName.length());
  69. String type = userInfo.getClass().getDeclaredField(tablePropertyName).getGenericType().toString();
  70. if(type.equals("class java.lang.String")){
  71. Method method = userInfo.getClass().getMethod(tableHead[j],new Class[] { String.class });
  72. method.invoke(userInfo,new Object[]{new String(value)});
  73. }
  74. if(type.equals("class java.lang.Integer")){
  75. value = value==""?"":value;
  76. Method method = userInfo.getClass().getMethod(tableHead[j],new Class[] { Integer.class });
  77. method.invoke(userInfo,new Object[]{new Integer(value)});
  78. }
  79. }
  80. }
  81. /*if(teamName.length() == 0){//个人导入
  82. UserInfo saveUserInfo = userinfoService.getUserInfoByNameAndMobile(fromWhere,userInfo.getTrueName(),userInfo.getMobilePhone());
  83. if(saveUserInfo == null){
  84. saveUserInfo = userinfoService.getUserINfoByNameAndEmail(fromWhere,userInfo.getTrueName(),userInfo.getEmail());
  85. if(saveUserInfo == null){
  86. Hospital hospital = mainService.getProvinceByName(userInfo.getProvince());
  87. if(hospital != null){
  88. userInfo.setProvince(String.valueOf(hospital.getProvinceId()));
  89. userInfo.setCity(String.valueOf(hospital.getCityId()));
  90. }
  91. userInfo.setConferencesId(conId);
  92. userinfoService.saveOrUpdate(userInfo);
  93. }
  94. }
  95. }else if(teamName.length() > 0){//团队导入
  96. UserInfo saveUserInfo = userinfoService.getUserInfoByName(fromWhere,userInfo.getTrueName());
  97. Hospital province = mainService.getProvinceByName(userInfo.getProvinceName());
  98. if(province != null){
  99. userInfo.setProvince(String.valueOf(province.getHospitalId()));
  100. }
  101. Hospital city = mainService.getCityByName(userInfo.getCityName());
  102. if(city != null){
  103. userInfo.setCity(String.valueOf(city.getHospitalId()));
  104. }
  105. if(saveUserInfo != null && saveUserInfo.getIsVip() != null && saveUserInfo.getIsVip() == 1){
  106. userInfo.setIsVip(-1);
  107. }
  108. userInfo.setTeamId(teamUser.getUserInfoId());
  109. userInfo.setIsTeam(1);
  110. userInfo.setIsTeamMember(1);
  111. userInfo.setConferencesId(conId);
  112. userinfoService.saveOrUpdate(userInfo);
  113. }*/
  114. if(userInfo != null){
  115. if(userInfo.getProvinceName() != null && userInfo.getProvinceName().length() >){
  116. String provinceName = userInfo.getProvinceName().replace("自治区", "").replace("省", "").replace("市", "");
  117. Hospital province = mainService.getProvinceByLikeName(provinceName);
  118. if(province != null){
  119. userInfo.setProvince(String.valueOf(province.getHospitalId()));
  120. }
  121. }
  122. if(userInfo.getCityName() != null && userInfo.getCityName().length() >){
  123. String cityName = userInfo.getCityName().replace("市", "");
  124. Hospital city = mainService.getCityByLikeName(cityName);
  125. if(city != null){
  126. userInfo.setCity(String.valueOf(city.getHospitalId()));
  127. }
  128. }
  129. }
  130.  
  131. if(teamName.length() > ){//团队导入
  132. UserInfo saveUserInfo = userinfoService.getUserInfoByName(fromWhere,userInfo.getTrueName());
  133.  
  134. if(saveUserInfo != null && saveUserInfo.getIsVip() != null && saveUserInfo.getIsVip() == ){
  135. userInfo.setIsVip(-);
  136. }
  137. userInfo.setTeamId(teamUser.getUserInfoId());
  138. userInfo.setIsTeam();
  139. userInfo.setIsTeamMember();
  140.  
  141. }
  142. userInfo.setConferencesId(conId);
  143. userinfoService.saveOrUpdate(userInfo);
  144. /*注册类型*/
  145. if(seanceId != null && seanceId + !=){
  146. ChcRegUser chcRegUser = webService.getChcRegUser(userInfo.getUserInfoId());
  147. if(chcRegUser == null){
  148. chcRegUser = new ChcRegUser();
  149. chcRegUser.setCreateTime(new Date());
  150. }
  151. chcRegUser.setPaymentMethod();
  152. chcRegUser.setConferencesId(Integer.valueOf(conId));
  153. Seance seance = webService.getSeanceById(seanceId);
  154. chcRegUser.setPay(seance.getPrice().intValue()); //应缴费
  155. chcRegUser.setHasPay(); //已缴费
  156. chcRegUser.setQianPay(seance.getPrice().intValue()); //欠费
  157. chcRegUser.setSeanceId(seanceId);
  158. chcRegUser.setSeance(seance.getSeanceContent());
  159. chcRegUser.setEnSeance(seance.getEnSeanceContent()==null?"":seance.getEnSeanceContent());
  160. chcRegUser.setUserId(userInfo.getUserInfoId());
  161. chcRegUser.setStateType();
  162. chcRegUser.setPayType();
  163. webService.saveObject(chcRegUser);
  164. userInfo.setJobNumber(chcRegUser.getChcRegUserId());
  165. userInfo.setPayState();
  166. webService.saveObject(userInfo);
  167. }
  168. }
  169. rowCount++;
  170. System.out.println(rowCount);
  171. }
  172. }
  173. writeJson(response, new JSONObject().accumulate("state", ).toString());
  174. } catch (Exception e) {
  175. e.printStackTrace();
  176. }
  177. }

利用类的反射导入excel示例的更多相关文章

  1. php导入excel

    使用phpexcelreader这个类文件来导入excel具体步骤: 先下载文件,然后引入phpexcelreader:下载地址:http://www.waaqi.com/wp-content/upl ...

  2. 在java poi导入Excel通用工具类示例详解

    转: 在java poi导入Excel通用工具类示例详解 更新时间:2017年09月10日 14:21:36   作者:daochuwenziyao   我要评论   这篇文章主要给大家介绍了关于在j ...

  3. php利用PHPExcel类导出导入Excel用法

    PHPExcel类是php一个excel表格处理插件了,下面我来给大家介绍利用PHPExcel类来导入与导出excel表格的应用方法,有需要了解的朋友不防参考参考(PHPExcel自己百度下载这里不介 ...

  4. 基于 Aspose.Cells与XML导入excel 数据----操作类封装

    前言 导入excel数据, 在每个项目中基本上都会遇到,第三方插件或者基于微软office,用的最多的就是npoi,aspose.cells和c#基于office这三种方式,其中各有各的优缺点,在这也 ...

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

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

  6. 利用Aspose.Cell控件导入Excel非强类型的数据

    导入Excel的操作是非常常见的操作,可以使用Aspose.Cell.APOI.MyXls.OLEDB.Excel VBA等操作Excel文件,从而实现数据的导入,在导入数据的时候,如果是强类型的数据 ...

  7. 利用kettle组件导入excel文件到数据库

    利用kettle组件导入excel文件到数据库 1.     实现目标 把excel文件内容导入到目标表中:然后用java调用kettle的转换.excel文件的内容仅仅有两列,示比例如以下: wat ...

  8. Spring Boot下的一种导入Excel文件的代码框架

    1.前言 ​ Spring Boot下如果只是导入一个简单的Excel文件,是容易的.网上类似的文章不少,有的针对具体的实体类,代码可重用性不高:有的利用反射机制或自定义注解,开发了Excel导入工具 ...

  9. Java注解(Annotation)用法:利用注解和反射机制指定列名导出数据库数据

    闲来没事,想了一个应用的例子:用java如何把数据库的数据根据我们指定的某几列,如第2列,第4列,第6列导出来到Excel里? 写代码也是为了应用的,写好的代码更重要的是在于思考.我自己思考了这个示例 ...

随机推荐

  1. 用svm来做回归预测(python)

    ————————————————————***提醒自己结束了就发博客***————————————————————

  2. DevExpress VCL Controls 2019发展路线图(No.3)

    [DevExpress VCL Controls下载] ExpressFlowChart 允许最终用户修改形状(v19.1) 允许开发人员以XML格式定义自定义形状(v19.1) 使用30多个新形状扩 ...

  3. Hibernate原理及应用

    Hibernate工作原理及为什么要用? 原理:1.通过Configuration().configure();读取并解析hibernate.cfg.xml配置文件2.由hibernate.cfg.x ...

  4. iptables-save命令

    [root@localhost ~]# iptables-save -t filter > iptables.bak [root@localhost ~]# cat iptables.bak # ...

  5. 黑客常用dos-cmd命令

    黑客常用命令大全net user heibai lovechina /add 加一个heibai的用户密码为lovechina net localgroup Administrators heibai ...

  6. oracle的PDB启动

    /*以管理员身份登录*/sqlplus / as sysdba /*查看CDB的状态*/select status from v$instance; /*开启startup,默认是open*/star ...

  7. 帝国cms中下拉框select的绑定

    在修改数据模型中,将下拉框的表示代码换成下: 将id换成自己的id地址.数据库查询中的classid换成自己创建栏目的id. <select name="diqu" id=& ...

  8. 利用js 生成不同li标签的点击事件

    <ul> <li>click me</li> <li>你好啊2</li> <li>你好啊3</li> <li& ...

  9. Python 递归锁

    import time from threading import Thread, Lock, RLock def f1(locA, locB): # print('xxxx') # time.sle ...

  10. canvas 添加线和删除线 及获取相关位置信息源码

    其他相关链接: https://github.com/lusase/lineDrawer.git https://www.jb51.net/css/359062.html https://www.jb ...