java批量修改文件名excel
时间: 2025-03-10 13:05:46 浏览: 6
使用 Java 批量重命名文件并记录到 Excel
为了完成这一任务,可以采用如下方法:
准备阶段
首先需要引入两个库来辅助操作:Apache POI 库用于创建和写入 Excel 文件;以及标准的 Java I/O 类库用于遍历和重命名文件。
编码实现
下面是一个简单的例子展示如何利用这些工具达成目标。此代码会读取指定目录下的所有文件,并按照一定规则更改它们的名字(这里假设简单地加上时间戳),之后把旧名字和新名字成对存入一个 Excel 表格中。
import org.apache.poi.ss.usermodel.*;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
import java.io.File;
import java.io.FileOutputStream;
import java.text.SimpleDateFormat;
import java.util.Date;
public class BatchRenameFiles {
public static void main(String[] args) throws Exception {
String folderPath = "/path/to/files"; // 替换成实际路径
Workbook workbook = new XSSFWorkbook();
Sheet sheet = workbook.createSheet("File Rename Log");
Row headerRow = sheet.createRow(0);
CellStyle cellStyle = workbook.createCellStyle();
CreationHelper createHelper = workbook.getCreationHelper();
headerRow.createCell(0).setCellValue(createHelper.createRichTextString("Original Name"));
headerRow.createCell(1).setCellValue(createHelper.createRichTextString("New Name"));
int rowNum = 1;
File directory = new File(folderPath);
SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd_HHmmss");
for (final File fileEntry : directory.listFiles()) {
if (!fileEntry.isDirectory()) {
String originalName = fileEntry.getName();
long currentTimeMillis = System.currentTimeMillis();
String newName = "renamed_" + sdf.format(new Date(currentTimeMillis)) + "_" + originalName;
boolean success = fileEntry.renameTo(new File(fileEntry.getParent(), newName));
if (success) {
Row row = sheet.createRow(rowNum++);
row.createCell(0).setCellValue(originalName);
row.createCell(1).setCellValue(newName);
}
}
}
try (FileOutputStream outputStream = new FileOutputStream("/path/to/excel/log.xlsx")) { // 替换为所需的Excel保存位置
workbook.write(outputStream);
}
workbook.close();
}
}
这段代码实现了批量重命名功能的同时也完成了日志记录的工作[^1]。
注意事项
- 需要确保项目中有 Apache POI 的依赖项以便能够正常编译运行上述代码片段。
/path/to/files
和/path/to/excel/log.xlsx
这样的字符串应该被替换为你自己的具体路径。- 如果遇到权限问题或者无法找到文件夹的情况,请确认所提供的路径是正确的并且应用程序有足够的权限去访问那些资源。
相关推荐


















