榆林市信息技术考试报名采集系统快速导入照片方法及工具

最近又要进行信息技术考试报名,其中导入考生照片这个环节比较繁琐,前几年写了一个小工具用来解决这个问题,今天分享出来,供大家交流使用,若发现问题或者需要解答及时交流沟通

1、首先登录榆林市中考网上信息管理平台

2、在【功能菜单】依次打开【八年级报名管理】【报名考生信息管理】

3、在【报名考生信息管理】页面点击右上角【下载报名信息】,在选择框中选择【全部考生报名信息】、【下载考生照片】进行下载,PS:照片下载后按照提示输入解压密码进行解压

     

                               

 4、【解决思路】因为导出的学生照片以学生中考的“报名号”命名,但是在信息技术考试采集系统中需要以学生的“学籍号”命名,所以需要一个“报名号”与“学籍号”的映射,然后批量进行改名,在上面导出的“全部考生报名信息”的excel中,刚好有它们之间的映射关系,如下:

 5、实现代码 (需要导入Jar包—poi,自行下载导入)

  /**
     * 读取EXCEL文件内容,返回Map
     * @param excelPath Excel路径
     */
    public static Map readFileToMap(String excelPath) {
        Map<String, String> map = new HashMap<>();
        try {
            FileInputStream inputStream = new FileInputStream(excelPath);
            Workbook workbook = new HSSFWorkbook(inputStream);
            //读取Excel前两列的的数据即报名号与学籍号,将其作为Key与Value添加到Map中
            Sheet sheet = workbook.getSheetAt(0);
            int Rowcout = sheet.getPhysicalNumberOfRows();
            for (int i = 2; i < Rowcout; i++) {
                Row row = sheet.getRow(i);
                Cell cell = row.getCell(0);
                Cell cell1 = row.getCell(1);
                map.put(cell.toString(), cell1.toString());
                System.out.println(cell + "——>" + cell1);
            }
            inputStream.close();
            return map;
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }
        return null;
    }
 /**
     *@description: 通过文件路径,修改该路径下所有文件的名字
     * @param path 文件夹路径
     */
    public static void changeFileName(String path,  Map idMap) {

        File file = new File(path);
        if (file.exists()) {
            File[] files = file.listFiles();
            if (null == files || files.length == 0) {
                return;
            } else {
                for (File file2 : files) {
                    if (file2.isDirectory()) {
                        changeFileName(file2.getAbsolutePath(),idMap);
                    } else {
                        String filePath = file2.getAbsolutePath();
                        String imgName=filePath.substring(filePath.lastIndexOf("\\")+1,filePath.length()-4);
                        String NewName = (String) idMap.get(imgName);
                        if(NewName!=null){
                            String fileName = filePath.substring(0, filePath.lastIndexOf("\\")) + "\\" +NewName+ filePath.substring(filePath.lastIndexOf("."));
                            System.out.print("将照片名称从:["+imgName+"]重命名为:["+NewName+"]");
                            File oriFile = new File(filePath);
                            boolean b = oriFile.renameTo(new File(fileName));
                            System.out.println(b);
                        }else {
                            System.out.println("当前照片名称为:["+imgName+"]新的照片名称,跳过重命名!!!");
                        }
                    }
                }
            }
        } else {
            System.out.println("该路径不存在");
        }
    }
    //Excel路径
    private static  String EXCELPATH = "D:\\Desktop\\2022年学考报名榆林市XX区XX中学全部报名考生信息表.xls";
    //照片路径
    private static String PHOTOPATH="D:\\Desktop\\2022年榆林市XX区XX中学学考考生照片";
    //测试
    public static void main(String[] args) {
        changeFileName(PHOTOPATH,readFileToMap(EXCELPATH));
    }

6、如果无代码基础,我做了一个GUI小工具,打包成Jar包,仅供大家交流使用,禁止用于其他用途(需要系统安装JAVA环境且JDK1.8以上,如何安装自行百度)。分别选择好图片路径与Excel路径即可!

重命名工具——点击下载

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值