Mathematica 批量一鍵合併ppt

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", %]

合併過程都是程序自動操作,窗口閃來閃去什麼的無視就好了,可以先去做自己的事情~

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章