根据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 ...
随机推荐
- 如何在Oculus官网下载OculusSetup.exe(当前时间20170720)
踩着免费的蓝灯FQ登录了Oculus官网,找了半天找不到哪里下载OculusSetup.exe,最后在最下面的支持中心找到了..... https://www.oculus.com/
- 嵌入式系统UBOOT
一个完整的嵌入式linux系统包含4部分内容:Bootloader.Parameters.Kernel.Root File System.3.4.5.6部分详细介绍了这4部分的内容,这是Linux底层 ...
- MySQL建表字段类型
1.数据库:在MySQL中,要存储数据,必须从数据库开始,因此首先要创建数据库,但由于学校的MySQL服务器对学生数据帐号有限止,学生不得创建数据库,故每个学生的帐号中已事先由信息中心为大家建立了一个 ...
- C++的virtual详解
类的多态特性是支持面向对象的语言最主要的特性,有过非面向对象语言开发经历的人,通常对这一章节的内容会觉得不习惯,因为很多人错误的认为,支持类的封装的语言就是支持面向对象的,其实不然,Visual BA ...
- mySQL数据库一:数据类型
integer(整型)varchar(字符串类型,必须要跟最大字符串)text(大文本)float(单精度,即七到八位有效数字)double(双精度,即15到16位有效数字)date(只有年月日)ti ...
- tableView删除功能小记
由于项目需要,做一个UITableView来实现删除功能. 效果如图: 功能思路其实不难: 交代一下,我自己要实现的效果: 1.TableView是分组的. 2.点击删除按钮后,某行被删除. 写完 ...
- cocos2dx游戏--欢欢英雄传说--添加动作
添加完人物之后接着给人物添加上动作.我们为hero添加4个动作:attack(由3张图片构成),walk(由2张图片构成),hit(由1张图片构成),dead(由1张图片构成):同样,为enemy添加 ...
- WinForm软件开机自动启动详细方法
现在正在制作一个物资公司的管理软件,把自己掌握的学到的一点点细细的讲给喜欢C#的同仁们,互相交流. 想要给你制作的应用程序做一个开机启动,很方便,你可以让用户选择,在你的工具栏中的某个下拉菜单里添加一 ...
- 谷歌Volley网络框架讲解——Network及其实现类
我们看到Network接口只有一个实现类BasicNetwork,而HttpStack有两个实现类. BasicNetwork这个类是toolbox工具箱包里的,实现了Network接口. 先来看下N ...
- Ubuntu16.04安装Elasticsearch
一.安装工作 wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add - sudo apt-g ...