博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Excel导入模板
阅读量:6610 次
发布时间:2019-06-24

本文共 3664 字,大约阅读时间需要 12 分钟。

hot3.png

public class ExcelImport {        public static AjaxMsg importPerson(HttpServletRequest request, String fileId, File file,            IFileService fileService, IPersonService psersonService) throws IOException {        style = null;//每次导入都将style置为null        InputStream is = new FileInputStream(file);        Workbook workbook = new HSSFWorkbook(is);        Sheet sheet = workbook.getSheetAt(0);        boolean error = false;// 标记excel格式是否有误        AjaxMsg msg = new AjaxMsg(true, "");        DecimalFormat df = new DecimalFormat("#"); // 防止号码变成数值类型        Map
> maps = new HashMap
>();                if (true) {            List
 personList = new ArrayList
();            for (int i = 3; i <= sheet.getLastRowNum(); i++) {                Row row = sheet.getRow(i);                TPerson person = new TPerson();                // name                Cell cell1 = row.getCell(0);                if (cell1 != null) {                    if (cell1.getCellType() == Cell.CELL_TYPE_STRING) {                        person.setName(cell1.getStringCellValue());                    } else if (cell1.getCellType() == Cell.CELL_TYPE_NUMERIC) {                        person.setName(cell1.getNumericCellValue() + "");                    }                } else {                    person.setName("");                }                if (person.getName() == null || person.getName().trim() == "") {//为空,则将单元格标红                    cell1.setCellStyle(createRedStyle(workbook,cell1.getCellStyle()));                    error = true;                }                // oldname                Cell cell2 = row.getCell(1);                if (cell2 != null) {                    if (cell2.getCellType() == Cell.CELL_TYPE_STRING) {                        person.setOldName(cell2.getStringCellValue());                    } else if (cell2.getCellType() == Cell.CELL_TYPE_NUMERIC) {                        person.setOldName(cell2.getNumericCellValue() + "");                    }                } else {                    person.setOldName("");                }                // shortname                Cell cell3 = row.getCell(2);                if (cell3 != null) {                    if (cell3.getCellType() == Cell.CELL_TYPE_STRING) {                        person.setShortName(cell3.getStringCellValue());                    } else if (cell3.getCellType() == Cell.CELL_TYPE_NUMERIC) {                        person.setShortName(cell3.getNumericCellValue()+ "");                    }                } else {                    person.setShortName("");                }                personList.add(person);            }            maps.put(person.getName(), personList);        }        if (is != null) {            is.close();        }        try {            if (error) {                maps.clear();                msg.setSuccess(false);                String fUUID = createErrorFile(fileId, file, fileService, workbook);                msg.setResult(fUUID);//文件的唯一标识,用于下载                msg.setMsg("valiError");            } else {                AjaxMsg result = personService.insertPersonData(request, maps);//将导入的数据写入数据库                if (!result.isSuccess()) {                     msg.setMsg("synError");                     msg.setSuccess(false);                 }            }        } catch (Exception e) {            e.printStackTrace();            msg.setMsg("导入数据出错");            msg.setSuccess(false);        }        return msg;    }    private static CellStyle style;        // 单元格标红    private static CellStyle createRedStyle(Workbook workbook,            CellStyle oldStyle) {        if(style!=null){            return style;        }        style = workbook.createCellStyle();        style.cloneStyleFrom(oldStyle);        style.setFillPattern(CellStyle.SOLID_FOREGROUND);        style.setFillForegroundColor(IndexedColors.RED.index);        return style;    }        private static boolean isPhoneNumber(String input) {        Pattern p = null;        Matcher m = null;        boolean b = false;        p = Pattern.compile("^[1][3,4,5,8][0-9]{9}$"); // 验证手机号        m = p.matcher(input);        b = m.matches();        return b;    }    private static boolean isEmail(String input) {        boolean a = false;        a = input                .matches("^[a-z0-9A-Z]+[- | a-z0-9A-Z . _]+@([a-z0-9A-Z]+(-[a-z0-9A-Z]+)?\\.)+[a-z]{2,}$");        return a;    }    /**     * Excel格式有错,则创建含错误信息的Excel供下载     */    private static String createErrorFile(String fileId, File file,            IFileService fileService, Workbook workbook) throws IOException,            FileNotFoundException {        TFile oldFile = fileService.find(fileId);        OutputStream os = new FileOutputStream(file);        workbook.write(os);        if (os != null) {            os.flush();            os.close();        }        return oldFile.getUuid();    }}

转载于:https://my.oschina.net/chinamummy29/blog/332762

你可能感兴趣的文章
6.6 tar打包
查看>>
Spring MVC核心技术
查看>>
TCP协议如何保证传输的可靠性
查看>>
Spring Cloud云架构 - SSO单点登录之OAuth2.0 登出流程(3)
查看>>
软件开发各阶段交付物列表
查看>>
ntp服务器的搭建
查看>>
Tair学习小记
查看>>
网卡绑定(服务器&&交换机),缓存服务器Squid架构配置
查看>>
web网站加速之CDN(Content Delivery Network)技术原理
查看>>
sed的基本用法
查看>>
一个不错的shell 脚本入门教程
查看>>
Ansible之playbook的使用
查看>>
ansible模块批量管理
查看>>
httpd.conf的基本设置
查看>>
RHEL/Centos7新功能
查看>>
DBA日常工作职责
查看>>
Redis的持久化
查看>>
linux安装NFS服务器学习
查看>>
Planner .NET日历日程控件能给你的应用程序提供多种日历日程功能
查看>>
我的友情链接
查看>>