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]);