读取EXCEL文件数据,对比文件夹中是否存在这个数据,有就添加EXCEL的ID到文件的前边保存
第一步运行:
composer require phpoffice/phpspreadsheet
第二步添加下边的代码
use PhpOffice\PhpSpreadsheet\IOFactory;
$inputFileName = 'D:\catimg1\example11.xls'; // 替换为你的文件名
$spreadsheet = IOFactory::load($inputFileName);
// 选择第一个工作表
$sheet = $spreadsheet->getSheet(0);
$directory = 'D:\catimg\2023-11'; // 替换为您的文件夹路径
$dir = 'D:\catimg\2023-11'; // 文件夹路径
$files = scandir($dir); // 获取文件夹下所有文件和文件夹
// $array = [];
foreach ($files as $file) {
if ($file != "." && $file != "..") { // 排除当前目录和上层目录
// 构建原文件路径和新文件路径
$filees = explode('_'$file);
// print_r($filees);die;
if (!empty($filees[1])) {
echo $file;
continue;
}
// die;
$oldName = $directory . '/' . $file;
foreach ($sheet->getRowIterator() as $keys => $row) {
// 遍历每一列
$cellIterator = $row->getCellIterator();
$cellIterator->setIterateOnlyExistingCells(false);
$data = [];
if ($keys != 1){
foreach ($cellIterator as $key=>$cell) {
if(in_array($key['A''B'])){
// 获取单元格的数据并输出
$value = $cell->getValue();
if ($key == 'A'){
$data['id'] = $value;
}else{
$data['name'] = $value;
}
// echo $value.$key . ' ';
}else{
break;
}
}
$filenames = substr($file0-4);
if($data['name'] == $filenames){
// 确保目标目录存在
$newName = $directory .'\\'. $data['id'].'_' . $data['name'].'.jpg'; // 新文件名格式可以自定义
$destinationDirectory = dirname($newName);
if (!is_dir($destinationDirectory)) {
mkdir($destinationDirectory 0755 true); // 第三个参数 true 用于创建多级目录
}
// 复制文件
if (copy($oldName $newName)) {
echo "文件复制成功".$file.'<br>';
} else {
echo "文件复制失败".$file.'<br>';
}
}
}
echo PHP_EOL;
}
// 修改文件名
echo $file . "<br>";
}
}
发表评论