使用 jquery.ocupload.js一键上传Excel文件

使用jquery.ocupload插件上传文件

jquery.ocupload-1.1.2.js就是一个js库,它用于一键文件上传
使用coupload一旦选择完文件,就会自动上传

导入jquery.js和jquery.ocupload.js

在这里插入图片描述

导入按钮

在这里插入图片描述

POI导入文件,

Excel文件
导入依赖
在这里插入图片描述

springmvc配置上传组件

在这里插入图片描述

controller层
// 导入Excel表
    @RequestMapping(value = "import.action",method = RequestMethod.POST)
    public String importRegion(MultipartFile excelFile)  {
        ArrayList<BcRegion> bcRegions = new ArrayList<>();

        try {
            HSSFWorkbook workbook = new HSSFWorkbook(excelFile.getInputStream());
            // 获取第一个工作簿
            HSSFSheet sheet = workbook.getSheetAt(0);

            // 获取Excel表格的行,
            int lastRowNum = sheet.getLastRowNum();
            // 遍历表格的每一行
            for (int i=1; i<=lastRowNum; i++){

                HSSFRow row = sheet.getRow(i);  // 获取行号
                BcRegion bcRegion = new BcRegion();
                bcRegion.setId(UUID32Gen.gen32UUIDString());  //
                // 获取Excel表格的列,
                short lastCellNum = row.getLastCellNum();
                // 遍历表格的每一列, 获取单元格
                for(int j=0;j<lastCellNum;j++){
               
                    switch (j){
                        case 1:
                            bcRegion.setProvince(row.getCell(1).getStringCellValue());  //省或市
                            break;

                        case 2:
                            bcRegion.setCity(row.getCell(2).getStringCellValue());     //市
                            break;

                        case 3:
                            bcRegion.setDistrict(row.getCell(3).getStringCellValue());  //县或区
                            break;

                        case 4:
                            bcRegion.setPostcode(row.getCell(4).getStringCellValue());  //邮编
                            break;
                    }
                }

                // 获取省份
                String province = bcRegion.getProvince();
                // 获取市
                String city = bcRegion.getCity();
                // 获取区或县
                String district = bcRegion.getDistrict();

                // 去掉省/或者市字
                province = province.substring(0,province.length()-1);
                // 去掉市字
                city = city.substring(0,city.length()-1);
                // 去掉区或县字
                district = district.substring(0, district.length() - 1);
                // 获取简码
                //  getShortPinyin(): 获取拼音首字母
                bcRegion.setShortcode(PinyinHelper.getShortPinyin(province+city+district));
                //  获取城市编码
              bcRegion.setCitycode(PinyinHelper.convertToPinyinString(city,"",PinyinFormat.WITHOUT_TONE));
                // 写进数据库
                bcRegions.add(bcRegion);

            }
            // 保存到数据库
            this.bcRegionService.saveAll(bcRegions);

        }catch (Exception e){
            e.printStackTrace();
        }

        // 跳转页面
        return "base/region";
    }

JPinyin是一个汉字转拼音的Java开源类库,在PinYin4j的功能基础上做了一些改进。
Jpinyin里面一共有四个类:

ChineseHelper.java 汉字简繁体转换类
PinyinFormat.java 拼音格式类
PinyinHelper.java 汉字转拼音类
PinyinResource.java 资源文件加载类

convertToPinyinString() 方法
/**
* 将字符串转换成相应格式的拼音
* @param str 需要转换的字符串
* @param separator 拼音分隔符
* @param pinyinFormat 拼音格式:WITH_TONE_NUMBER–数字代表声调,WITHOUT_TONE–不带声调,WITH_TONE_MARK–带声调
* @return 字符串的拼音
*/

getShortPinyin() :截取拼音首字母
/**
* 获取字符串对应拼音的首字母
* @param str 需要转换的字符串
* @return 对应拼音的首字母
*/

service 层
    @Override
    @Transactional  // 插入必须进行事务
    public void saveAll(ArrayList<BcRegion> bcRegions) {
        // 遍历逐条插入
        for (BcRegion bcRegion:bcRegions){
            this.bcRegionMapper.insertSelective(bcRegion);
        }
    }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值