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

您所在的位置:网站首页 讲两个工作表合并 【MATLAB】多个Excel表合并(按行、按列、按Sheet

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

2024-07-05 01:15| 来源: 网络整理| 查看: 265

【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)

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

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


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3