poster
2019-12-10, 20:30
有没有一种简便的好方法来汇总matlab中的各种excel文件?我真正想要的是类似于
dos命令
输入file * .xls> sumfile.xls
我从10-100个具有类似文件名格式的excel文件中排除了日期XXXXX_2010_03_03.xls,XXXXX_2010_03_03.xls等。.....
是否有一条命令可以一个接一个地复制文件。所有文件的差异长度,所以我不知道每个文件后的行的位置。我想将它们复制到同一张Excel中。
谢谢
回答:
获取文件名
names=dir('XXXXX-*.xls'); names={names.name}; output='out.xls'; 第一个文件。每次您运行该程序时,都会覆盖输出-如果您要执行此操作,则取决于您。
copyfile(names{1},output); 循环浏览文件
for i=2:length(names) num_in = xlsread(names{i}); % read the data num_out = xlsread(output); range=['A' num2str(size(num_out,1)+1)]; % next free line xlswrite(output, num_in, 1, range); %always write to the 1st sheet end 如果(1)您只有数字数据,并且(2)您想要从上到下连接文件(如您所说的“ sum”,则这应该可行)。
如果(1)错误,请阅读xlsread的帮助-查找txt和raw输出。
更多&回答... (https://stackoverflow.com/questions/2473713)
dos命令
输入file * .xls> sumfile.xls
我从10-100个具有类似文件名格式的excel文件中排除了日期XXXXX_2010_03_03.xls,XXXXX_2010_03_03.xls等。.....
是否有一条命令可以一个接一个地复制文件。所有文件的差异长度,所以我不知道每个文件后的行的位置。我想将它们复制到同一张Excel中。
谢谢
回答:
获取文件名
names=dir('XXXXX-*.xls'); names={names.name}; output='out.xls'; 第一个文件。每次您运行该程序时,都会覆盖输出-如果您要执行此操作,则取决于您。
copyfile(names{1},output); 循环浏览文件
for i=2:length(names) num_in = xlsread(names{i}); % read the data num_out = xlsread(output); range=['A' num2str(size(num_out,1)+1)]; % next free line xlswrite(output, num_in, 1, range); %always write to the 1st sheet end 如果(1)您只有数字数据,并且(2)您想要从上到下连接文件(如您所说的“ sum”,则这应该可行)。
如果(1)错误,请阅读xlsread的帮助-查找txt和raw输出。
更多&回答... (https://stackoverflow.com/questions/2473713)