Matlab中如何将Excel表中的265-528行F-AA列数据复制到1-263行AE-AZ中
版本:MatlabR2018b
clc;
clear;
% 旧Excel文件名
oldFile = ' ' ;
% 新Excel文件名
newFile = ' ' ;
% 工作表名称(旧表和新表一致)
sheetName = 'Sheet1' ;
% 旧文件中待复制的数据范围 ( F : 代表Excel表中固定列;1585 : 代表表中从哪一行开始;AD : 代表结束于表中哪一列;1858 : 代表结束于哪一行)
sourceRange = 'F1585:AD848' ; % 新文件中的目标起始位置(从第1 行、第31 列开始写入)(FY :代表Excel表头哪一列;2 :代表表中哪一行开始)
targetStart = 'FY2' ; % 新文件起始位置% === == 自动化操作 === ==
% 1. 读取旧Excel中的指定数据
[ numData, txtData, rawData] = xlsread ( oldFile, sheetName, sourceRange) ;
% 将数值矩阵转换为元胞数组
numDataCell = num2cell ( numData) ; % 关键修复:转换数值矩阵为元胞数组
% 合并数值和文本数据(修复类型错误)
combinedData = rawData; % 直接使用原始数据(已包含混合类型)
% 仅当数值存在时覆盖空单元格(优化合并逻辑)
[ rows, cols] = size ( numDataCell) ;
for i = 1 : rowsfor j = 1 : colsif ~ isnan ( numData ( i, j) ) && isempty ( rawData{ i, j} ) combinedData{ i, j} = numData ( i, j) ; endend
end
% 写入新文件(确保输出为元胞数组)
xlswrite ( newFile, combinedData, sheetName, targetStart) ;
disp ( [ '数据已成功复制到: ' newFile] ) ;