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

21 篇文章 3 订阅

【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循环”……
  • 26
    点赞
  • 111
    收藏
    觉得还不错? 一键收藏
  • 11
    评论
MATLAB中,可以使用以下步骤合并多个Excel: 1. 使用 `xlsread` 函数读取每个的数据。假设要合并存储在文件名为 `file1.xlsx`、`file2.xlsx`、`file3.xlsx`,则可以使用以下代码读取数据: ```matlab data1 = xlsread('file1.xlsx'); data2 = xlsread('file2.xlsx'); data3 = xlsread('file3.xlsx'); ``` 2. 创建一个空的矩阵或单元数组,用于存储合并后的数据。根据你的需求选择合适的数据类型,例如使用矩阵: ```matlab mergedData = []; ``` 3. 将每个的数据追加到合并数据中。可以使用 `vertcat` 函数将数据垂直拼接。假设要按照顺序拼接 `data1`、`data2`、`data3`,则可以使用以下代码: ```matlab mergedData = vertcat(mergedData, data1); mergedData = vertcat(mergedData, data2); mergedData = vertcat(mergedData, data3); ``` 4. 使用 `xlswrite` 函数将合并后的数据写入新的Excel文件。假设要将合并后的数据保存为 `merged.xlsx`,则可以使用以下代码: ```matlab xlswrite('merged.xlsx', mergedData); ``` 完成上述步骤后,你将得到一个名为 `merged.xlsx` 的Excel文件,其中包含了所有合并数据。请确保在运行代码之前,安装并加载了 MATLABExcel 接口(在 R2019a 之前的版本中,使用 `xlsread` 和 `xlswrite` 函数需要安装 Excel 接口)。 注意:如果你的具有不同的列数或列名,合并后可能需要进行一些额外的处理。
评论 11
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值