暨阳社区

标题: 咨询一个电脑问题 [打印本页]

作者: marlon    时间: 2024-1-3 16:46
标题: 咨询一个电脑问题
如何快速将文件夹中的图片(人名)按照EXCEL中对应的顺序进行排序啊?
作者: 小橡皮    时间: 2024-1-3 19:38
不会   下一个
作者: 修电脑的我    时间: 2024-1-3 19:39
这不是电脑问题哦,不要搞错了
作者: bond007    时间: 2024-1-3 20:11
百度去
作者: 安装维修监控    时间: 2024-1-3 20:13
一,excel中的张三,李四,王五,,,,用套公式自动重命改成  1张三   2李四,3王五,4赵六,,,,,名字前加从小到大的数字
二,图片套公式重命名,把人名也改成3王五,1张三,2李四,4赵六,,,
三,图片递增排序。。。

作者: 那夯瑟刚个啦    时间: 2024-1-3 20:16
如果这种工作是难得做一下的,手工处理一下就行,图片重命名,在图片的名字前加上数字序号就行了;
如果经常有这样的排序的工作,建议找专业的IT人员开发个小程序做。
作者: 萤火虫飞呀飞    时间: 2024-1-3 20:42
命名前面加个数字123456,就按顺序排列了
作者: marlon    时间: 2024-1-4 08:48
安装维修监控 发表于 2024-1-3 20:13
一,excel中的张三,李四,王五,,,,用套公式自动重命改成  1张三   2李四,3王五,4赵六,,,,,名字 ...

少量的可以这样,几百上千的呢,所以想问问有没有其他快速的办法
作者: 现实击败梦想    时间: 2024-1-4 09:42
https://jingyan.baidu.com/article/c1a3101eb2e9db9f656deba2.html

百度啊
作者: 遇见孤鸿影    时间: 2024-1-4 09:46
不要搞错了                                                                                                                                                                                 
作者: 安装维修监控    时间: 2024-1-4 11:14
marlon 发表于 2024-1-4 08:48
少量的可以这样,几百上千的呢,所以想问问有没有其他快速的办法

什么叫套公式,就是批处理
作者: marlon    时间: 2024-1-4 14:09
现实击败梦想 发表于 2024-1-4 09:42
https://jingyan.baidu.com/article/c1a3101eb2e9db9f656deba2.html

百度啊

我百度过了,我要的不是这个意思,我的是一个表格里面有很多人,要按照一定的规则排序,然后文件中还有很多人的获奖证书,证书名字也是以人名命名的,现在要把图片按照表格的顺序排序并且一一对应。
作者: 色花拉欠    时间: 2024-1-4 14:21
chatgpt
作者: cjsyr1990    时间: 2024-1-4 16:09
写个bat批处理程序就能搞定
作者: glint    时间: 2024-1-4 19:24
可以用excel中的vba编程来改图片文件名啊,楼主现学现用下vba
作者: xxlei163    时间: 2024-1-5 11:19
你可以尝试以下 Python 脚本:
import pandas as pd
import os

# 读取 Excel 表格
excel_file = 'path_to_your_excel_file.xlsx'
df = pd.read_excel(excel_file)

# 遍历 Excel 表格中的每一行
for index, row in df.iterrows():
    # 获取姓名和顺序
    name = row['姓名']
    order = row['顺序']

    # 构建旧的和新的文件路径
    old_file_path = f'path_to_your_image_folder/{name}.jpg'  # 假设图片文件是以姓名命名的
    new_file_name = f'{order}_{name}.jpg'
    new_file_path = f'path_to_your_sorted_image_folder/{new_file_name}'

    # 如果图片文件存在,将其重命名
    if os.path.exists(old_file_path):
        os.rename(old_file_path, new_file_path)
    else:
        print(f'图片文件 {old_file_path} 不存在')

print('重命名完成')

在这个示例中,你需要将 path_to_your_excel_file.xlsx 替换为你的 Excel 文件的路径,path_to_your_image_folder 替换为包含图片文件的文件夹路径,path_to_your_sorted_image_folder 替换为你想要保存排序后图片的文件夹路径。这个脚本会读取 Excel 文件中的每一行,获取姓名和顺序,并将对应的图片文件重命名为新的文件名,新文件名的格式为 顺序_姓名.jpg。

作者: xxlei163    时间: 2024-1-5 11:20
当然可以使用 VBA(Visual Basic for Applications)来处理 Excel 表格和文件系统。下面是一个示例 VBA 代码,假设你的 Excel 文件中有两列,分别是姓名和顺序,以及一个文件夹中有以姓名命名的图片文件,你想按照顺序重命名这些图片文件。

首先,你需要打开你的 Excel 文件,按下 ALT + F11 打开 VBA 编辑器,在左侧的项目资源管理器中双击 Sheet1(或你的工作表名称),然后在右侧的代码窗口中粘贴以下代码:

Sub RenameImages()
    Dim ws As Worksheet
    Dim i As Integer
    Dim oldFileName As String, newFileName As String
    Dim imagePath As String
   
    ' 替换 "Sheet1" 为你的工作表名称
    Set ws = ThisWorkbook.Sheets("Sheet1")
   
    ' 遍历表格中的每一行
    For i = 2 To ws.Cells(ws.Rows.Count, 1).End(xlUp).Row
        ' 获取姓名和顺序
        oldFileName = "path_to_your_image_folder\" & ws.Cells(i, 1).Value & ".jpg" ' 假设图片文件是以姓名命名的
        newFileName = "path_to_your_sorted_image_folder\" & ws.Cells(i, 2).Value & "_" & ws.Cells(i, 1).Value & ".jpg" ' 新文件名格式为 顺序_姓名.jpg
        
        ' 检查文件是否存在
        If Dir(oldFileName) <> "" Then
            ' 重命名文件
            Name oldFileName As newFileName
        Else
            MsgBox "文件 " & oldFileName & " 不存在。", vbExclamation
        End If
    Next i
   
    MsgBox "重命名完成。", vbInformation
End Sub


在这个示例中,你需要替换 Sheet1 为你的工作表名称,以及将 path_to_your_image_folder 替换为包含图片文件的文件夹路径,path_to_your_sorted_image_folder 替换为你想要保存排序后图片的文件夹路径。这个 VBA 代码将遍历指定的工作表中的每一行,根据姓名和顺序重命名对应的图片文件。






作者: xxlei163    时间: 2024-1-5 11:21
是的,你也可以使用批处理脚本(.bat 文件)来重命名文件。假设你的 Excel 文件中有两列,分别是姓名和顺序,以及一个文件夹中有以姓名命名的图片文件,你想按照顺序重命名这些图片文件。

你可以创建一个新的文本文件,将以下命令保存为 rename_images.bat:

@echo off
setlocal enabledelayedexpansion

rem 替换 "path_to_your_excel_file.xlsx" 为你的 Excel 文件路径
set "excel_file=path_to_your_excel_file.xlsx"

rem 替换 "path_to_your_image_folder" 为包含图片文件的文件夹路径
set "image_folder=path_to_your_image_folder"

rem 替换 "path_to_your_sorted_image_folder" 为你想要保存排序后图片的文件夹路径
set "sorted_image_folder=path_to_your_sorted_image_folder"

rem 读取 Excel 文件中的姓名和顺序,并逐行处理
for /f "tokens=1,2 delims=," %%a in ('type "%excel_file%" ^| findstr /r /v "^$"') do (
    rem 构建旧的和新的文件路径
    set "old_file_path=%image_folder%\%%a.jpg"
    set "new_file_name=%%b_%%a.jpg"
    set "new_file_path=%sorted_image_folder%\!new_file_name!"

    rem 如果图片文件存在,将其重命名
    if exist "!old_file_path!" (
        ren "!old_file_path!" "!new_file_name!"
    ) else (
        echo 图片文件 "!old_file_path!" 不存在。
    )
)

echo 重命名完成。
pause

在这个批处理脚本中,你需要将 path_to_your_excel_file.xlsx 替换为你的 Excel 文件的路径,path_to_your_image_folder 替换为包含图片文件的文件夹路径,path_to_your_sorted_image_folder 替换为你想要保存排序后图片的文件夹路径。这个脚本会逐行读取 Excel 文件中的姓名和顺序,并根据顺序重命名对应的图片文件。







作者: marlon    时间: 2024-1-5 15:37
xxlei163 发表于 2024-1-5 11:21
是的,你也可以使用批处理脚本(.bat 文件)来重命名文件。假设你的 Excel 文件中有两列,分别是姓名和顺序 ...

牛,我来看看,不一定看得懂呢,不过还是感谢
作者: marlon    时间: 2024-1-5 15:40
xxlei163 发表于 2024-1-5 11:21
是的,你也可以使用批处理脚本(.bat 文件)来重命名文件。假设你的 Excel 文件中有两列,分别是姓名和顺序 ...

大侠,方便留个联系方式,具体请教吗?
作者: 沈顾    时间: 2024-1-6 07:45
网上搜
作者: xxlei163    时间: 2024-1-6 09:24
marlon 发表于 2024-1-5 15:40
大侠,方便留个联系方式,具体请教吗?

问的AI
作者: lippone    时间: 2024-1-6 10:08
数量多的话用数据库吧




欢迎光临 暨阳社区 (http://bbs.jysq.net/) 暨阳社区 - 江阴论坛 - 网络改变江阴
(打印:@2025-12-21 04:08)