JAVA导入Excel文件

“落叶他乡树,寒灯独夜人”
JSP:

<div id="excelUser" title="excel导入"
     style="display: none; width: 350px; height: 150px; padding: 15px; background: #E9F1FF;">
    <form id="excelUserForm" method="post" enctype="multipart/form-data"
          action="">
        <table cellspacing='0' cellpadding='1'>
            <tr>
                <td style="text-align: left; font-size: 12px;">选择excel文件:</td>
                <td><input style="width: 200px;" type="file"
                           class="input easyui-validatebox" id="excelfile" name="excelfile"
                           required="required" />
                </td>
            </tr>
            <tr>
                <td colspan="2" style="text-align: left; font-size: 12px;"><span
                        style="color: red">注:请选择后缀名为xlsx文件,否则无法导入。</span></td>
            </tr>
        </table>
    </form>
</div>

JS:

/**
 * 上传方法
 */
function doImport() {
    $('#excelUser').show().dialog({
        modal : true,
        toolbar : [ {
            text : '提交',
            iconCls : 'icon-ok',
            handler : function() {
                $('#excelUserForm').form('submit', {
                    url : 'controller/clientActivityHotInfoManage/import.json',
                    onSubmit : function() {
                        parent.$.messager.progress({
                            title : '提示',
                            text : '数据导入中,请稍等....'
                        });
                        var isValid = $('#excelUserForm').form('validate');
                        if (!isValid) {
                            parent.$.messager.progress('close');
                            return false;
                        }
                    },
                    success : function(response) {
                        $('#excelUser').dialog('close');
                        var response = eval('(' + response + ')');
                        parent.$.messager.progress('close');
                        if (response.success) {
                            $.messager.alert('成功', response.msg, 'info');
                            $('#subjectGrid').datagrid('reload');
                            // doAuto();

                        } else {

                            $.messager.alert('失败', response.msg, 'error');
                        }
                        $('#projectStageConfig').datagrid('load', {
                            id : $.trim($('#id').val())
                        });
                    },
                    failure : function(response) {
                        parent.$.messager.progress('close');
                        $('#excelUser').dialog('close');
                        $.messager.alert('失败', response.msg, 'error');
                    }
                });

            }

        }, {
            text : '关闭',
            iconCls : 'icon-cancel',
            handler : function() {
                $('#excelUser').dialog('close');
            }
        } ]

    });
}

Controller:

@CodeComments("导入EXCEL到表中")
    @RequestMapping({"/import.json"})
    @ResponseBody
    public void importExcel(MultipartHttpServletRequest request, HttpServletRequest request1, HttpServletResponse response, ClientActivityHotInfoManage eui, Integer egroupid)
    {
        Map messages = new HashMap();
        MultipartFile file = request.getFile("excelfile");
        String inputPath = file.getOriginalFilename();
        System.out.println("inputPath=========================" + inputPath);
        String originalFile = inputPath.substring(
                inputPath.lastIndexOf(".") + 1, inputPath.length())
                .toLowerCase();

        if ("xls,xlsx".indexOf(originalFile) < 0) {
            messages.put("success", Boolean.valueOf(false));
            messages.put("msg", "文件导入类型错误,只能导入后缀名是xlsx的EXCEL文件类型!");
            toJson(response, messages);
            return;
        }
        if ("xls".equals(originalFile)) {
            messages.put("success", Boolean.valueOf(false));
            messages.put("msg", "文件导入类型错误,只能导入后缀名是xlsx的EXCEL文件类型!");
            toJson(response, messages);
            return;
        }
        if (file.getSize() > 20048576L) {
            messages.put("success", Boolean.valueOf(false));
            messages.put("msg", "文件过大,只能导入20M内文件!");
            toJson(response, messages);
            return;
        }

        int i = 0;
        try
        {
            InputStream fis = file.getInputStream();
        //这个方法在下面展示
            List imielist = ActivityHotInfoExcelManage.importExcelInfo(fis, eui);

            ClientActivityHotInfoManage order = new ClientActivityHotInfoManage();


            for (i = 0; i < imielist.size(); i++)
            {
                ClientActivityHotInfoManage vo = (ClientActivityHotInfoManage)imielist.get(i);
                ClientActivityHotInfoManage lx = new ClientActivityHotInfoManage();

                lx.setAcId(vo.getAcId());
                lx.setAcUrl(vo.getAcUrl());
                lx.setStartDate(vo.getStartDate());
                lx.setEndDate(vo.getEndDate());
                lx.setRepeat(vo.getRepeat());
                lx.setStatus(vo.getStatus());
                lx.setPlotId(vo.getPlotId());
                lx.setAcName(vo.getAcName());


//这里就可以直接插入实体类了             this.clientActivityHotInfoManageService.insert(lx);

                messages.put("success", Boolean.valueOf(true));
                messages.put("msg", "数据导入成功!");
            }
            fis.close();
        }
        catch (Exception e) {
            messages.put("success", Boolean.valueOf(false));
            messages.put("msg", "导入异常,请在检查excel表的第" + (i + 2) + "行后,从第" + (
                    i + 2) + "行开始导入!");
            System.out.println("importExcel异常--------->" + e.getMessage());
        }
        toJson(response, messages);
    }

importExcelInfo方法

public static List<ClientActivityHotInfoManage> importExcelInfo(InputStream fis, ClientActivityHotInfoManage eui)
    {
        List<ClientActivityHotInfoManage> excelInfos = new ArrayList<ClientActivityHotInfoManage>();
        try
        {
            XSSFWorkbook hwb = new XSSFWorkbook(fis);

            XSSFSheet sheet = hwb.getSheetAt(0);
            XSSFRow row = null;

            System.out.println("*****总行数****" + sheet.getPhysicalNumberOfRows());

            for (int i = 0; i < hwb.getNumberOfSheets(); i++) {
                sheet = hwb.getSheetAt(i);

                for (int j = 1; j < sheet.getPhysicalNumberOfRows(); j++)
                {
                    row = sheet.getRow(j);
                    ClientActivityHotInfoManage excelInfo = new ClientActivityHotInfoManage();

                    if ((row.getCell(1) != null) &&
                            (getCellValue(row.getCell(1)) != "")) {

                        excelInfo.setAcId(getCellValue(row.getCell(1)).trim());
                        excelInfo.setAcUrl(getCellValue(row.getCell(2)).trim());
                        excelInfo.setStartDate(getCellValue(row.getCell(3)).trim());
                        excelInfo.setEndDate(getCellValue(row.getCell(4)).trim());
                        excelInfo.setRepeat(Long.parseLong(getCellValue(row.getCell(5)).trim().substring(0,1)));
                        excelInfo.setStatus(Long.parseLong(getCellValue(row.getCell(6)).trim().substring(0,1)));
                        excelInfo.setPlotId((getCellValue(row.getCell(7)).trim()));
                        excelInfo.setAcName((getCellValue(row.getCell(8)).trim()));
                    }

                    excelInfos.add(excelInfo);
                }

            }

            return excelInfos;
        }
        catch (Exception e) {
            System.out.println("导入EXCEL文件出错------------>" + e.getMessage());
        }
        return null;
    }
  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值