因为在写大量图片自动化插入word的可视化执行程序便于项目组使用,为了方便传递文件,要求输入进Excel的文件必须首行筛选
生成效果
%% 参数设置 % ProjectAddress; % 需打开文件的绝对地址 % CurrentSheets; % 需设置首行筛选的工作簿名称,如工作簿名称'原始数据' % SelectID; % 首行筛选的ID, 如'A1:I1' %% 写入数据到Excel文件 deleteSheet(ProjectAddress,CurrentSheets); % 若要打开筛选功能,此命令必须存在 writecell(TotalRawData,ProjectAddress,'Sheet',CurrentSheets,"WriteMode", "overwritesheet"); % 写入数据 %% 打开文件 Excel = actxserver('Excel.Application'); set(Excel, 'Visible',0); % 窗口隐藏 set(Excel,'DisplayAlerts',0); try Workbook = Excel.Workbooks.Open(ProjectAddress); catch;error('工程文件可能已打开'); end %% 显示指定工作簿 [~, sheets] = xlsfinfo(ProjectAddress); % 读取当前Excel文件的所有工作簿 SheetID = find(ismember(sheets,CurrentSheets)); % 查找指定工作簿的ID Excel.Sheets.Item( SheetID ).Activate; % 打开指定工作簿 CurrentRange = Excel.Range(SelectID).Select; % 选中指定列的首行 Excel.Selection.AutoFilter();% 打开或关闭选中的单元格筛选 %若筛选已存在则该功能为取消筛选,若筛选未开则是打开筛选 %% 保存并退出 Excel.ActiveWorkBook.Save; Excel.ActiveWorkBook.Close(true); Excel.Quit;
执行AutoFilter操作时,若筛选已存在则该功能为取消筛选,若筛选未开则是打开筛选;因此为保证筛选处于未开状态,需使用deleteSheet。
免责声明:本文系网络转载或改编,未找到原创作者,版权归原作者所有。如涉及版权,请联系删