You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Matlab中将10个Excel文件垂直合并为两个不同文件?

实现10个Excel文件分两组垂直合并到两个Excel文件(Matlab)

核心思路

先明确分组规则(比如按文件数量均分,或按文件名特征划分),然后分别读取每组内的文件数据,垂直拼接后写入对应目标文件。以下是两种常见场景的实现代码:


场景1:按数量均分(前5个合并为文件A,后5个合并为文件B)

% 1. 获取目标文件夹下的所有Excel文件(假设文件格式为.xlsx)
fileFolder = '你的文件所在文件夹路径';
fileList = dir(fullfile(fileFolder, '*.xlsx'));
filePaths = fullfile(fileFolder, {fileList.name});

% 2. 拆分文件列表为两组
group1Paths = filePaths(1:5);  % 前5个文件
group2Paths = filePaths(6:10); % 后5个文件

% 3. 定义合并函数(复用逻辑)
function mergedData = mergeExcelFiles(filePaths)
    mergedData = [];
    for i = 1:length(filePaths)
        % 读取当前文件数据(用readtable保留表头,readmatrix仅读数值)
        data = readtable(filePaths{i});
        % 第一组文件保留表头,后续文件跳过表头
        if i > 1
            data = data(2:end, :);
        end
        mergedData = vertcat(mergedData, data);
    end
end

% 4. 分别合并两组文件
mergedGroup1 = mergeExcelFiles(group1Paths);
mergedGroup2 = mergeExcelFiles(group2Paths);

% 5. 写入目标Excel文件
writetable(mergedGroup1, fullfile(fileFolder, '合并结果1.xlsx'));
writetable(mergedGroup2, fullfile(fileFolder, '合并结果2.xlsx'));

场景2:按文件名特征分组(比如含"GroupA"的文件合并为A,含"GroupB"的合并为B)

fileFolder = '你的文件所在文件夹路径';
fileList = dir(fullfile(fileFolder, '*.xlsx'));
filePaths = fullfile(fileFolder, {fileList.name});

% 按文件名筛选分组
group1Paths = filePaths(contains({fileList.name}, 'GroupA'));
group2Paths = filePaths(contains({fileList.name}, 'GroupB'));

% 复用上面的mergeExcelFiles函数
mergedGroup1 = mergeExcelFiles(group1Paths);
mergedGroup2 = mergeExcelFiles(group2Paths);

writetable(mergedGroup1, fullfile(fileFolder, 'GroupA合并结果.xlsx'));
writetable(mergedGroup2, fullfile(fileFolder, 'GroupB合并结果.xlsx'));

关键注意事项

  • 如果文件只有数值数据,可将readtable/writetable替换为readmatrix/writematrix,提升效率
  • 确保所有文件的列数一致,否则vertcat会报错
  • 若表头格式不一致,需提前统一处理(比如强制指定列名)

内容的提问来源于stack exchange,提问作者mathew81

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.15 03:35:18