问题:根据Excel文件中内容,把文件名称由第2列,改为第1列。比如:把文件“123.jpg”修改为“1.jpg”。

aaarticlea/png;base64,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" alt="" />

思路1:按行读取Excel文件,同时遍历文件;修改文件名称。(双层for循环,效率:n*n)

* 思路2:把文件以Map的形式进行一一存储;读取Excel文件,从Map中取得文件;修改文件名称。(效率:n+n)


/**
* 描述:根据Excel中的内容,修改目标路径下的文件名称
* @param excelFile 源Excel文件(最原始文件,3列的)
* @param path 文件夹的路径
* @param column 表格中的第几列。0序号;2姓名
* @throws CheckException
*/
public static void updateFileName(File excelFile,File path,Integer column) throws CheckException{
checkExcelFile(excelFile);
if(path.listFiles()==null){
throw new CheckException("照片文件不存在!");
}
//1.遍历文件,把文件存储至 Map中。键:文件名称(无后缀),值:文件
File[] files=path.listFiles();
Map<String,File> fileMap=new HashMap<String,File>();
for(File file:files ){
String name=file.getName();
String prefixPhoto=name.substring(0,name.lastIndexOf('.'));
fileMap.put(prefixPhoto,file);
} try{
    //2.遍历Excel文件
Workbook workbook=new HSSFWorkbook(new FileInputStream(excelFile));
Sheet sheet = workbook.getSheetAt(0); // 从工作区中取得页(Sheet)
int rowEnd = sheet.getLastRowNum();
for (int i = 0; i < rowEnd; i++) {//行 循环打印Excel表中的内容
Row row = sheet.getRow(i);
String idcard = row.getCell(1).getStringCellValue();//(列,行)
File photoFile=fileMap.get(idcard);
       //3.修改文件名称
if(photoFile!=null){
String fileName=photoFile.getName();
String subfixPhoto=fileName.substring(fileName.lastIndexOf('.'));
row.getCell(column).setCellType(Cell.CELL_TYPE_STRING);//设置Excel文件中单元格内容的类型为String类型
String text = row.getCell(column).getStringCellValue();
photoFile.renameTo(new File(photoFile.getParent()+"\\"+text+subfixPhoto));//修改文件名称
}
}
} catch (Exception e) {
e.printStackTrace();
}
}

根据Excel文件中的内容,修改指定文件夹下的文件名称的更多相关文章

  1. 用java将excel表格中的内容修改后写入到另一个excel中

    package nn; import java.io.File; import jxl.Cell; import jxl.Sheet; import jxl.Workbook; import jxl. ...

  2. 向txt文件中写入内容(覆盖重写与在末尾续写+FileOutputStream与FileWriter)(转发:https://blog.csdn.net/bestcxx/article/details/51381460)

    !!!! 读取txt文件中的内容 import java.io.BufferedReader; import java.io.File; import java.io.FileReader; /** ...

  3. java代码将excel文件中的内容列表转换成JS文件输出

    思路分析 我们想要把excel文件中的内容转为其他形式的文件输出,肯定需要分两步走: 1.把excel文件中的内容读出来: 2.将内容写到新的文件中. 举例 一张excel表中有一个表格: 我们需要将 ...

  4. 修改tnsnames.ora文件中配置内容中的连接别名后,连接超时解决办法

    1.tnsnames.ora文件中配置内容中的连接别名:由upaydb修改为IP地址 2.连接超时 定位原因: PLSQL登录界面的数据库列表就是读的tnsname.ora中连接的别名,这个文件中连接 ...

  5. iOS案例:读取指定txt文件,并把文件中的内容输出出来

    用到的是NSString中的initWithContentsOfFile: encoding方法 // // main.m // 读取指定文件并输出内容 // // Created by Apple ...

  6. 从Excel文件中读取内容

    从Excel文件中读取内容 global::System.Web.HttpPostedFileBase file = Request.Files["txtFile"]; strin ...

  7. python 修改文件中的内容

    在python的文件操作中,是没有办法对文件中具体某行或者某个位置的内容进行局部的修改的,如果需要对文件的某一行内容进行修改,可以先将文件中的所有的内容全部读取出来,再进行内容判断,是否是需要修改的内 ...

  8. linux shell 脚本获取和替换文件中特定内容

    1.从一串字符串中获取特定的信息 要求1:获取本机IP:menu.lst为系统镜象的IP配置文件,需要从中获取到本机IP信息(从文件获取信息) timeout title live find --se ...

  9. 根据excel表格中的内容更新Sql数据库

    关于[无法创建链接服务器 "(null)" 的 OLE DB 访问接口 SQL Server 2008读取EXCEL数据时,可能会报这个错误:无法创建链接服务器 "(nu ...

随机推荐

  1. MUI 二维码扫描并跳转

    1 首页 index.html <li id="html/barcode.html" onclick="clicked(this.id)"> < ...

  2. [干货] 有了微信小程序,谁还学ReactNative?

    版权声明:本文由贺嘉原创文章,转载请注明出处: 文章原文链接:https://www.qcloud.com/community/article/145 来源:腾云阁 https://www.qclou ...

  3. Linux命令学习之xargs命令

    xargs命令是给其他命令传递参数的一个过滤器,也是组合多个命令的一个工具.它擅长将标准输入数据转换成命令行参数,xargs能够处理管道或者stdin并将其转换成特定命令的命令参数.xargs也可以将 ...

  4. struts2 中redirectAction如何传递参数!

    在struts2中,初学者因为参数传递的问题往往会出现一些错误. 比如页面跳转的问题,在用户注册中,以一下代码作为案例: <struts> <constant name=" ...

  5. Nmap的活跃主机探测常见方法

    最近由于工作需求,开始对Nmap进行一点研究,主要是Nmap对于主机活跃性的探测,也就是存活主机检测的领域. Nmap主机探测方法一:同网段优先使用arp探测: 当启动Namp主机活跃扫描时候,Nma ...

  6. Minix2.0操作系统kernel文件分析

    详细分析  MINIX消息机制的核心: mpx386.s start.c proc.c 保护模式分析: src/kernel/exception.c src/kernel/protect.c src/ ...

  7. http://blog.csdn.net/ym19860303/article/details/8462450

    http://www.himigame.com/iphone-cocos2d/444.html 很多游戏中,便于开发就会直接采用Cocos2d提供的字体库来使用,但是因为提供的种类很多,那么Himi利 ...

  8. vue 缓存的keepalive页面刷新数据

    用到这个的业务场景是这样的: a页面点击新建列表按钮进入到新建的页面b,填写b页面并点击b页面确认添加按钮,把这些数据带到a页面,填充到列表(数组),可以添加多条, 点击这条的时候进入到编辑页面,确认 ...

  9. postgresql 表空间创建、删除

    表空间:字面上理解就是表存储的物理空间,其实包括数据库的表.索引.序列等. 可以将表空间创建在服务器的不同分区,这样做的好处有: 一.如果初始化集群所在分区已经用光,可以方便的其他分区上创建表空间已达 ...

  10. pta习题集5-16 朋友圈

    某学校有N个学生,形成M个俱乐部.每个俱乐部里的学生有着一定相似的兴趣爱好,形成一个朋友圈.一个学生可以同时属于若干个不同的俱乐部.根据"我的朋友的朋友也是我的朋友"这个推论可以得 ...