python能幹的事,麥醬當然也能幹,只是可能沒人會想到這麼玩……
代碼如下
Needs["NETLink`"]
PPTMerge[merged_,list_]:=Block[{pptmerged,ppt,client,pages},
CopyFile[First@list,merged];
client=CreateCOMObject["PowerPoint.Application"];
pptmerged=client@Presentations@Open[merged];
PrintTemporary[ProgressIndicator[Dynamic[i],{1,Length@list}]];
Do[
ppt=client@Presentations@Open[list[[i]]];
pages=ppt@Slides@Count;
ppt@Close[];
pptmerged@Slides@InsertFromFile[list[[i]],pptmerged@Slides@Count,1,pages],{i,2,Length@list}];
pptmerged@Save[];
pptmerged@Close[];
client@Quit[];
ReleaseCOMObject[client]]
使用方法
先獲取目錄下的所有ppt文件,目錄請用絕對路徑
FileNames["D:\\merge\\*.ppt"]
然後調用函數進行合併,第一個參數是合併後的文件,也要用絕對路徑,第二個參數是上一步獲取到的文件列表,如果需要改變順序可以自行sort上一步得到的數組
PPTMerge["D:\\merge\\merged.ppt", %]
合併過程都是程序自動操作,窗口閃來閃去什麼的無視就好了,可以先去做自己的事情~