根据Excel文件中的内容,修改指定文件夹下的文件名称
问题:根据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文件中的内容,修改指定文件夹下的文件名称的更多相关文章
- 用java将excel表格中的内容修改后写入到另一个excel中
package nn; import java.io.File; import jxl.Cell; import jxl.Sheet; import jxl.Workbook; import jxl. ...
- 向txt文件中写入内容(覆盖重写与在末尾续写+FileOutputStream与FileWriter)(转发:https://blog.csdn.net/bestcxx/article/details/51381460)
!!!! 读取txt文件中的内容 import java.io.BufferedReader; import java.io.File; import java.io.FileReader; /** ...
- java代码将excel文件中的内容列表转换成JS文件输出
思路分析 我们想要把excel文件中的内容转为其他形式的文件输出,肯定需要分两步走: 1.把excel文件中的内容读出来: 2.将内容写到新的文件中. 举例 一张excel表中有一个表格: 我们需要将 ...
- 修改tnsnames.ora文件中配置内容中的连接别名后,连接超时解决办法
1.tnsnames.ora文件中配置内容中的连接别名:由upaydb修改为IP地址 2.连接超时 定位原因: PLSQL登录界面的数据库列表就是读的tnsname.ora中连接的别名,这个文件中连接 ...
- iOS案例:读取指定txt文件,并把文件中的内容输出出来
用到的是NSString中的initWithContentsOfFile: encoding方法 // // main.m // 读取指定文件并输出内容 // // Created by Apple ...
- 从Excel文件中读取内容
从Excel文件中读取内容 global::System.Web.HttpPostedFileBase file = Request.Files["txtFile"]; strin ...
- python 修改文件中的内容
在python的文件操作中,是没有办法对文件中具体某行或者某个位置的内容进行局部的修改的,如果需要对文件的某一行内容进行修改,可以先将文件中的所有的内容全部读取出来,再进行内容判断,是否是需要修改的内 ...
- linux shell 脚本获取和替换文件中特定内容
1.从一串字符串中获取特定的信息 要求1:获取本机IP:menu.lst为系统镜象的IP配置文件,需要从中获取到本机IP信息(从文件获取信息) timeout title live find --se ...
- 根据excel表格中的内容更新Sql数据库
关于[无法创建链接服务器 "(null)" 的 OLE DB 访问接口 SQL Server 2008读取EXCEL数据时,可能会报这个错误:无法创建链接服务器 "(nu ...
随机推荐
- iOS文件处理介绍(一)
一.在Documents.tmp和Library中存储文件 Documents:用于存储应用程序中经常需要读取或写入的常规文件. tmp:用于存储应用程序运行时生成的文件.(随着应用程序的关闭失去了利 ...
- C#正则表达式提取HTML中IMG标签中的SRC地址
百度到的一个,这里就直接贴了 http://blog.csdn.net/smeller/article/details/7108502#comments 一般来说一个 HTML 文档有很多标签,比如“ ...
- poj_2553 强连通分支&出度为0的点
题目大意 N个点的有向图中,定义“好点”为: 从该点v出发可以到达的所有点u,均有一条路径使得u可达v. 求出图中所有的“好点”,并按照顺序从小到大输出出来. 题目分析 图存在多个强连通分支,强连通分 ...
- myBatis调用postgreSQL存储过程
1.调用没有OUT参数的存储过程: 创建存储过程: create or replace function get_code(a1 varchar(32)) returns varchar(32) as ...
- Unity3D笔记九 发送广播与消息、利用脚本控制游戏
一.发送广播与消息 游戏对象之间发送的广播与消息分为三种:第一种向子对象发送,将发送至该对象的同辈对象或者子孙对象中:第二种为给自己发送,发送至自己本身对象:第三种为向父对象发送,发送至该对象的同辈或 ...
- MySQL命令行基本命令操作
进入命令模式后, 显示所有数据库 show databases; 选定某个数据库 use 数据库名; 创建数据库 create database 数据库名; 删除数据库 drop table 数据库名 ...
- 310实验室OTL问题----将写好的C++文件转换成Python文件,并将数据可视化
如图:文件夹 第一处:optimizer文件夹下的:optimizer.h文件中添加你所写代码的头文件 #include <OTL/Optimizer/Reference-NSGA-II/Re ...
- 徐州网络赛C-Cacti Lottery【DFS】
54.19% 2000ms 262144K Morgana is playing a game called cacti lottery. In this game, morgana has a 3 ...
- Hibernate的状态,缓存和映射
Hibernate的状态,缓存和映射 1.对象的状态 1.1.对象状态的概念和分类 在使用Hibernate操作数据库的时候,我们先创建了JavaBean对象,然后使用session来保存或者更新到数 ...
- LightBGM之Dataset
最近使用了LightBGM的Dataset,记录一下: 1.说明: classlightgbm.Dataset(data, label=None, reference=None, weight=Non ...