by 今天不飞了
之前发了生成excel表和合并excel表的文章,各种需求就来了……
在这里把几种基础的合并方法分享给大家,其他花里胡哨的筛选合并就不要问我了。整理excel真的很无聊,给钱也不做……除非“你给得太多”
代码
提供“文件路径,新excel文件名,合并类型”即可
function MultXlsIntoOne(xlsPath,xlsName,type)
% 获取所有xls列表
dirout1 = dir(fullfile(xlsPath,'*.xls'));
dirout2 = dir(fullfile(xlsPath,'*.xlsx'));
xlsList = {dirout1.name,dirout2.name};
fileNum = length(xlsList);
% 写
switch type
case 1 % row
idx = 1;
for n = 1:fileNum
disp([num2str(n),'--',xlsList{n}])
[~,~,info] = xlsread(fullfile(xlsPath,xlsList{n}));
xlswrite(fullfile(xlsPath,xlsName),info,1,['A',num2str(idx)])
infonum = size(info,1);
idx = idx+infonum;
end
case 2 % col
list = cell(fileNum,1);
shape = zeros(fileNum,2);
for n = 1:fileNum
disp([num2str(n),'--',xlsList{n}])
[~,~,info] = xlsread(fullfile(xlsPath,xlsList{n}));
list{n} = info;
shape(n,:) = size(info);
end
out = cell(max(shape(:,1)),sum(shape(:,2)));
col = 0;
for n = 1:fileNum
out(1:shape(n,1),col+1:col+shape(n,2)) = list{n};
col = col+shape(n,2);
end
xlswrite(fullfile(xlsPath,xlsName),out)
case 3 % sheet
warning('off')
for n = 1:fileNum
disp([num2str(n),'--',xlsList{n}])
[~,~,info] = xlsread(fullfile(xlsPath,xlsList{n}));
xlswrite(fullfile(xlsPath,xlsName),info,n)
end
end
end
测试
新建一个名为MultXlsIntoOne.m的脚本,把上面的代码复制进去保存,然后运行下面的代码
新建一个名为MultXlsIntoOne.m的脚本,把上面的代码复制进去保存,然后运行下面的代码
首先推荐把要合并的excel表放到一个文件夹里,然后调用函数
按Row合并
xlsPath = 'C:\我也不知道你的数据在哪里\数据'
MultXlsIntoOne(xlsPath,'随便取个名字.xlsx',1)
按Col合并
xlsPath = 'C:\我也不知道你的数据在哪里\数据'
MultXlsIntoOne(xlsPath,'随便取个名字.xlsx',2)
按sheet合并文章来源:https://www.toymoban.com/news/detail-704725.html
xlsPath = 'C:\我也不知道你的数据在哪里\数据'
MultXlsIntoOne(xlsPath,'随便取个名字.xlsx',3)
效果不展示了,你们自己试一试文章来源地址https://www.toymoban.com/news/detail-704725.html
其他
- 别留言问我“如果我想这样,该怎么实现……”,问就是“for循环”……
到了这里,关于【MATLAB】多个Excel表合并(按行、按列、按Sheet的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!