【MATLAB】多个Excel表合并(按行、按列、按Sheet

【MATLAB】多个Excel表合并(按行、按列、按Sheet)

  • 代码
  • 测试
  • 其他

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合并

xlsPath = 'C:\我也不知道你的数据在哪里\数据'
MultXlsIntoOne(xlsPath,'随便取个名字.xlsx',3)

效果不展示了,你们自己试一试


其他

  1. 别留言问我“如果我想这样,该怎么实现……”,问就是“for循环”……

你可能感兴趣的:(MATLAB,其他,matlab,开发语言,矩阵)