https://www.jianshu.com/p/cac7d97ee083

% 先获取指定路径下的所有特定文件名称,此处用到dir函数
path = 'D:\2019年上半年文件\2019下半年文件\基础部党费计算材料\基础部党费计算材料\基础部党总支党员19年1-3月工资\';
Files= dir(strcat(path,'*.xls'));%这是要改的文件名的目录,我的是xls文件

% 将获取到的文件名称变量写入到一个指定的Excel文件中,
% 这里因为我们获取到的Files变量是一个元胞数组,每个原胞中有name属性的变量,
% 所以要应用循环来将每个元胞数据中的name变量提取出来。
LengthFiles = length(Files);
for i = 1:LengthFiles
    d=Files(i).name;
    f(i)=cellstr(d);  %转化为字符串再进行赋值
end
f=f.';  %转置一下
xlswrite('D:\Matlab\matlab_rename_data.xlsx',f,'sheet1');
% 先将名字数据写入Excel数据中,以便后续在Excel中修改数据,再将修改好的数据重新读取

% 在Excel文件中按自己想需求修改文件名称。
% 修改完之后需要做的就是如何把修改完之后的名称变量按顺序重新命名给对应的文件。
% 这里先把修改完的名称变量从Excel文件中读取出来。
[data,file_id]  = xlsread('D:\Matlab\matlab_rename_data.xlsx', 'sheet1', 'A1:A78');
% 重新读取的修改好的名字变量。
% 这里可以指定读取的具体单元格
% 比如采用xlsread('PATH', 'sheet1', 'A1:A78')这种写法也可

% 跟写入Excel文件过程类似,将Excel中的名称变量写回每个对应的文件也需要用到循环。
% 这里为了不破坏原有文件,我们选择copyfile函数把文件复制为新文件到其他地址。
for i=1:LengthFiles  
    x1=  Files(i).name;
    x2= file_id{i};
    %注意此处是大括号而不是小括号因为file_id(i)是cell类型但是file_id{i}是string类型
    copyfile([path x1],['D:\Matlab\处理好的数据\' x2]);
    %复制到“处理好的数据”文件夹中,请确保该路径有相应文件夹
end

posted on 2019-04-23 13:08  Fendi_ly  阅读(2006)  评论(0编辑  收藏  举报