如何在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
相关产品推荐
相关产品推荐

