导入poi包
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi</artifactId>
<version>5.2.1</version>
</dependency>
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml</artifactId>
<version>5.2.1</version>
</dependency>
<dependency>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
<version>2.11.0</version>
</dependency>
import org.apache.poi.ss.usermodel.Cell;
import org.apache.poi.ss.usermodel.Row;
import org.apache.poi.ss.usermodel.Sheet;
import org.apache.poi.ss.usermodel.Workbook;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.nio.file.Files;
public class ExcelFileRenamer {
public static void main(String[] args) {
String excelFilePath = "/home/xxx/11.xlsx";
String sourceDirectoryPath = "/home/xxx/image";
String targetDirectoryPath = "/home/xxx/new_image";
try (FileInputStream file = new FileInputStream(excelFilePath)) {
Workbook workbook = new XSSFWorkbook(file);
Sheet sheet = workbook.getSheetAt(0); // 获取第一个Sheet
int rowStartIndex = 1; // 假设第一行为标题行,从第二行开始读取数据
for (Row row : sheet) {
if (row.getRowNum() >= rowStartIndex) {
Cell cell1 = row.getCell(0);
Cell cell2 = row.getCell(1);
if (cell1 != null && cell2 != null) {
String fileName = cell1.getStringCellValue();
String newFileName = cell2.getStringCellValue();
File sourceFile = new File(sourceDirectoryPath + File.separator + fileName);
File targetFile = new File(targetDirectoryPath + File.separator + newFileName);
if (sourceFile.exists() && !targetFile.exists()) {
Files.move(sourceFile.toPath(), targetFile.toPath());
System.out.println("File renamed: " + fileName + " -> " + newFileName);
} else {
System.out.println("File not found: " + fileName);
}
}
}
}
workbook.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}