Wps呼叫dll操作Excel表格轉PDF
起始原因:wps編輯建立的文件在microsoft office 中開啟,會報內容存在異常是否恢復,因此wps檔案被微軟設定為破損檔案,無法對原有文件進行操作執行,故在此使用wps對Excel進行操作。
環境要求:首先安裝wps專業版或企業版安裝包,並註冊,未註冊的軟體,程式呼叫時無法正常啟動,它會啟動註冊介面,無法對Excel進行實際程式碼操作。
安裝成功後,在程式中引用兩個com元件,該元件為wps註冊程式引用的dll檔案
下邊一個為Excel的dll檔案,上面的是wps程式的關鍵dll檔案
開發環境說明
Vs .net core整合操作wps
實質:通過程式呼叫wps客戶端,啟動程式後對其進行需要的操作,以載入
Source為原始檔地址,target為目標PDF檔案地址
public void newapp(string source, string target)
{
Excel.ApplicationClass mexcel = new Excel.ApplicationClass();
object missing = Type.Missing;
try
{
mexcel.Visible = false;
Excel.Workbook mdoc = mexcel.Workbooks.Open(source, missing, missing, missing, missing, missing, missing, missing, missing, missing, missing, missing, missing, missing, missing);
mdoc.Save();
//儲存為Pdf
mdoc.ExportAsFixedFormat(Excel.XlFixedFormatType.xlTypePDF, target, Excel.XlFixedFormatQuality.xlQualityStandard, true, false, missing, missing, missing, missing);
mdoc.Close(missing, missing, missing);
}
catch (Exception ex)
{
Console.WriteLine(ex);
}
finally
{
//System.Runtime.InteropServices.Marshal.ReleaseComObject(app);
mexcel.Quit();
GC.Collect();
GC.WaitForPendingFinalizers();
GC.Collect();
GC.WaitForPendingFinalizers();
}
}
如果後期部署的話,無法找到對應dll檔案,或者安裝的wps版本不一致,那麼可能會導致無法通過登錄檔啟動程式,需要將對應的dll引用到釋出包下
Wps必備引用ksoapi.dll
excel必備引用:etapi.dll
Dll的位置均在wps的安裝路徑下的\wps\WPS Office\11.1.0.12598\office6\