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