【MATLAB】如果對Excel的指定工作簿進(jìn)行首行篩選的設(shè)置
背景
因?yàn)樵趯懘罅繄D片自動化插入word的可視化執(zhí)行程序便于項(xiàng)目組使用,為了方便傳遞文件,要求輸入進(jìn)Excel的文件必須首行篩選

相關(guān)代碼
%% 參數(shù)設(shè)置
% ProjectAddress;? ?% 需打開文件的絕對地址
% CurrentSheets;? ? ?% 需設(shè)置首行篩選的工作簿名稱,如工作簿名稱'原始數(shù)據(jù)'
% SelectID;? ? ? ? ? ? ? ?% 首行篩選的ID,?如'A1:I1'
%% 寫入數(shù)據(jù)到Excel文件
deleteSheet(ProjectAddress,CurrentSheets); % 若要打開篩選功能,此命令必須存在
writecell(TotalRawData,ProjectAddress,'Sheet',CurrentSheets,"WriteMode", "overwritesheet"); % 寫入數(shù)據(jù)
?%% 打開文件
Excel = actxserver('Excel.Application');
set(Excel, 'Visible',0); % 窗口隱藏
set(Excel,'DisplayAlerts',0);
try Workbook = Excel.Workbooks.Open(ProjectAddress);
catch;error('工程文件可能已打開');
end
%% 顯示指定工作簿
[~, sheets] = xlsfinfo(ProjectAddress); % 讀取當(dāng)前Excel文件的所有工作簿
SheetID =?find(ismember(sheets,CurrentSheets)); % 查找指定工作簿的ID
Excel.Sheets.Item(?SheetID ).Activate; % 打開指定工作簿
CurrentRange = Excel.Range(SelectID).Select; % 選中指定列的首行?
Excel.Selection.AutoFilter();% 打開或關(guān)閉選中的單元格篩選?
%若篩選已存在則該功能為取消篩選,若篩選未開則是打開篩選
%% 保存并退出
Excel.ActiveWorkBook.Save;
Excel.ActiveWorkBook.Close(true);
Excel.Quit;
注意事項(xiàng)
執(zhí)行AutoFilter操作時(shí),若篩選已存在則該功能為取消篩選,若篩選未開則是打開篩選;因此為保證篩選處于未開狀態(tài),需使用deleteSheet。
?

By:何其
2023年3月16日01:01:26
使用時(shí)請注明來源