ocupload 和Apache POI 处理文件上传的问题

来源:互联网 发布:陆树铭 关羽 知乎 编辑:程序博客网 时间:2024/05/17 08:26

boss需要做个简单Excel上传的功能

之前有做过类似的功能,但是现在使用起来也不怎么熟悉了,这里再整理下。

首先页面部分ocupload是一个jquery的组件需要一个

jquery.ocupload-1.1.2.js


    $(function () {                  $(".uploadfile").upload({                      action: 'CourseXMLFileUploadHander.ashx',                      name: 'xml',                      params: {                          'type': 'uploadCourseXMLFile',                          'rand': Math.random()                      },                      onSelect: function (self, element) {                          this.autoSubmit = false;                          var re = new RegExp("(xml){1}quot;, "i");                                if (!re.test(this.filename())) {                              alert("Only xml file can be uploaded");                          }                          else {                              this.submit();                          }                      },                      onSubmit: function (self, element) {                          $('.uploadfile').hide();                          $('#ajax_update').parent().show();                          //alert('Uploading file...');                      },                      onComplete: function (data, self, element) {                          $('#ajax_update').parent().hide();                          $('.uploadfile').show();                          self.resetInput();                          try {                              var ret = data;                              if (ret.indexOf("exception") >= 0) {                                  alert('Upload file exception: ' + eval(data)[0].exception);                              }                              else {                                  showSuccess('File is successfully Load.');                                        uploadSuccess(ret);                                    }                          } catch (err) {                              alert(data);                          }                      }                  });              });  


页面处理后就是后台部分

后台部分需要的jar包大致有这些

这里贴出主要代码和注释,另外需要添加自己的代码,完成功能

这里上传的Excel是区域,故接收类为Area

public String batchImport() throws IOException {List areas = new ArrayList();// 编写解析代码逻辑// 基于.xls 格式解析 HSSF// 1、 加载Excel文件对象HSSFWorkbook hssfWorkbook = new HSSFWorkbook(new FileInputStream(file));// 2、 读取一个sheetHSSFSheet sheet = hssfWorkbook.getSheetAt(0);// 3、 读取sheet中每一行for (Row row : sheet) {// 一行数据 对应 一个区域对象if (row.getRowNum() == 0) {// 第一行 跳过continue;}// 跳过空行if (row.getCell(0) == null|| StringUtils.isBlank(row.getCell(0).getStringCellValue())) {continue;}Area area = new Area();area.setId(row.getCell(0).getStringCellValue());area.setProvince(row.getCell(1).getStringCellValue());area.setCity(row.getCell(2).getStringCellValue());area.setDistrict(row.getCell(3).getStringCellValue());area.setPostcode(row.getCell(4).getStringCellValue());areas.add(area);}// 调用业务层areaService.saveBatch(areas);return NONE;}empty


原创粉丝点击