使用easyPOI导入Excel数据

1.首先,导入easyPOI的Maven依赖,可以去Maven仓库去找。

2.下面是我实际工作中写的代码:

(1)controller层:

     @RequestMapping("/importExcel")
     @ResponseBody
    public  String  importExcel(@RequestParam(value="file") MultipartFile file,HttpServletRequest request) {
        String fffw=request.getParameter("fffw_");
        String fffwName=request.getParameter("fffwName_");
        MultipartRequest multipartRequest=(MultipartRequest) request;
        MultipartFile excelFile=multipartRequest.getFile("file");
        ImportParams  params=new ImportParams(); 
        
        int fail=0;
           //params.setTitleRows(1);
           params.setHeadRows(1);
           params.setNeedVerfiy(true);
           List<BirthInfoImportExcelPojo> list=null;
           int success=0;
           try {
                list=ExcelImportUtil.importExcel(excelFile.getInputStream(), BirthInfoImportExcelPojo.class, params);
                fail=indpservice.insertBirthInfo(list,fffw,fffwName);
                success=list.size();
           } catch (Exception e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
           //System.out.println(JSON.toJSONString(list));
          
        return "生日卡数据导入成功"+success+"条,导入失败"+fail+"条";
      
     }

 

(2)service层:对数据进行处理后 插入数据库

    @Override
    public int insertBirthInfo(List<BirthInfoImportExcelPojo> list,String fffw,String fffwName) {
        // TODO Auto-generated method stub
        int fail=0;
        ShiroUser user = (ShiroUser) SecurityUtils.getSubject().getPrincipal();
        if(list!=null&& list.size()>0){
            Iterator<BirthInfoImportExcelPojo> it = list.iterator();
            while(it.hasNext()){
                BirthInfoImportExcelPojo bir=it.next();
                StringBuilder sb=new StringBuilder();
                sb.append("select lpkzh from FD_CPASHsrkgl  where lpkzh='"+bir.getLpkzh()+"'");
                List<Map<String,String>> lis=indpDao.getDdataList(sb.toString());
                if(lis.size()>0 || bir.getLpkzh()==null){
                    fail++;
                     it.remove();
                }
            }
            for(int j=0;j<list.size();j++){
                BirthInfoImportExcelPojo bir=list.get(j);
                CpaBirInfoEntity birInfo = new CpaBirInfoEntity();
                birInfo.setId(UUID.randomUUID().toString());
                birInfo.setCjr_(user.getUserId());
                birInfo.setCjrname_(user.getName());
                birInfo.setData_dept_code(user.getDeptCode());
                birInfo.setData_org_id(user.getOrgid());
                birInfo.setC_uid(user.getUserId());
                birInfo.setDr("N");
                birInfo.setData_user_id(user.getUserId());
                SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
                birInfo.setTs(formatter.format(new Date()));
                birInfo.setSfyfp("CPASsf002");
                birInfo.setCjrq(formatter.format(new Date()));
                birInfo.setLpkzh(bir.getLpkzh());
                birInfo.setThmm(bir.getLpkpwd());
                birInfo.setFffw_(fffw);
                birInfo.setFffwname_(fffwName);
                StringBuilder sb = new StringBuilder();
                sb.append(
                        " insert into bpm_ru_biz_info(ID_,SOL_ID_,TABLE_NAME_,ARCHIVE_STATE_,CREATE_USER_ID_,STATE_,DR_,BIZ_TYPE_,DATA_USER_ID,TS_) ");
                sb.append(" values('" + birInfo.getId() + "','263867fd-7d9b-484d-a17e-ca6d1bf15410','生日卡管理','0','"
                        + user.getUserId() + "','0','N','100110121004','"+user.getUserId()+"','"+formatter.format(new Date())+"')");
                indpDao.save(birInfo);
                indpDao.saveBirInfo(sb.toString());
            }
        }
        if(list.size()>0&& list!=null){
            StringBuilder updateSql=new StringBuilder();
            updateSql.append("update FD_srkfsfw set srkzs=srkzs+'"+list.size()+"',kys=kys+'"+list.size()+"' where id='"+fffw+"'");
            indpDao.saveBirInfo(updateSql.toString());
        }
        
        return fail;
    }

(3)Entity: 注解需要对应Excel中的信息。

public class BirthInfoImportExcelPojo {
    /**
     * 礼品卡账号
     */
    @Excel(name = "礼品卡账号")
    private String lpkzh;
    /**
     * 账号密码
     */
    @Excel(name = "密码")
    private String lpkpwd;
    /**
     * 礼品卡发放范围
     */
    @Excel(name = "发放范围")
    private String lpkfffw;

    public String getLpkzh() {
        return lpkzh;
    }

    public void setLpkzh(String lpkzh) {
        this.lpkzh = lpkzh;
    }

    public String getLpkpwd() {
        return lpkpwd;
    }

    public void setLpkpwd(String lpkpwd) {
        this.lpkpwd = lpkpwd;
    }

    public String getLpkfffw() {
        return lpkfffw;
    }

    public void setLpkfffw(String lpkfffw) {
        this.lpkfffw = lpkfffw;
    }

    @Override
    public String toString() {
        return "BirthInfoImportExcelPojo [lpkzh=" + lpkzh + ", lpkpwd=" + lpkpwd + ", lpkfffw=" + lpkfffw + "]";
    }
    
}

(4)前台代码:

function saveImport() {
    //限制文件为excel文件
    var file = $("#file").val();
     var fw=$("#fffwName_").val();
    if (file.indexOf(".xls") < 0) {
        layerMsg("'提示', '仅支持xls和xlsx格式,请重新选择!'");
        return;
    }else if(fw==""){
    layerMsg("'提示', '请选择发放范围'");
    return ;
    }
    var modal = $('#mylaModal');
    modal.modal('hide');
    var formData = new FormData();
    formData.append("file", document.getElementById("file").files[0]);
    formData.append("fffw_",document.getElementById("fffw_").value);
    formData.append("fffwName_",document.getElementById("fffwName_").value);
    var index = layer.load(0, {shade: [0.1,'#fff']}); //0代表加载的风格,支持0-2
    $.ajax({
        url : 'indpController/importExcel',
        type : "POST",
        data : formData,
        dataType: 'text',
        contentType : false,
        processData : false,
        async : true,
        success : function(data) {
            layerAlert(data);
            $("#search_").click();
            layer.close(index);
            $("#bizInfoList").bootstrapTable('destroy');
            loadTableCfg();
            memorySelected();
            initBtns(); 
            
        }
    });
}


记录作为java实习生的点滴

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
要在Vue中使用EasyPoi导入Excel文件,需要进行以下步骤: 1. 安装EasyPoi 在Vue项目中使用EasyPoi需要先安装EasyPoi,可以通过npm进行安装: ``` npm install easypoi --save ``` 2. 创建Excel文件上传组件 在Vue项目中创建一个Excel文件上传组件,可以使用第三方组件库如ElementUI或者自己编写组件。 3. 实现Excel文件上传功能 在Excel文件上传组件中实现文件上传功能,并在上传成功后调用EasyPoi导入方法将Excel文件中的数据导入到Vue项目中。示例代码如下: ```javascript import { importExcel } from 'easypoi'; export default { methods: { handleFileUpload(file) { importExcel(file.raw, { // 配置导入参数 }).then(data => { // 处理导入后的数据 }).catch(error => { // 处理导入失败的情况 }); } } } ``` 在上述代码中,`handleFileUpload`方法表示文件上传成功后的回调函数,其中`importExcel`方法是EasyPoi提供的导入Excel文件的方法,它接受两个参数:Excel文件数据导入参数。导入成功后,可以对导入数据进行处理。 4. 配置导入参数 在导入Excel文件时,可以配置一些参数来控制导入的过程,如表头行数、数据行数、数据类型等。示例代码如下: ```javascript import { importExcel } from 'easypoi'; export default { methods: { handleFileUpload(file) { importExcel(file.raw, { // 配置导入参数 titleRows: 1, // 表头行数,默认为1 startRows: 2, // 数据行开始行数,默认为2 type: 'array' // 导入数据类型,默认为array }).then(data => { // 处理导入后的数据 }).catch(error => { // 处理导入失败的情况 }); } } } ``` 在上述代码中,`titleRows`表示表头的行数,默认为1;`startRows`表示数据行的开始行数,默认为2;`type`表示导入数据的类型,默认为array。 5. 处理导入后的数据导入Excel文件后,可以对导入数据进行处理。如将数据存储到数据库中、显示到页面上等。示例代码如下: ```javascript import { importExcel } from 'easypoi'; export default { data() { return { tableData: [] // 表格数据 } }, methods: { handleFileUpload(file) { importExcel(file.raw, { // 配置导入参数 }).then(data => { // 处理导入后的数据 this.tableData = data; }).catch(error => { // 处理导入失败的情况 }); } } } ``` 在上述代码中,`tableData`是Vue组件中用来存储导入后的数据的数组,当导入成功后,将数据存储到该数组中,然后可以在页面上显示出来。 这就是在Vue中使用EasyPoi导入Excel文件的步骤。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值