此处将我引用的代码贴出来:
private bool ExceltoPDF(string sourcePath, string targetPath, Excel.XlFixedFormatType targetType)
{
bool result;
object missing = Type.Missing;
Excel.ApplicationClass application = null;
Excel.Workbook workBook = null;
try
{
application = new Excel.ApplicationClass();
//application = Excel.XlCreator.CreateObject("Excel.Application")
object target = targetPath;
object type = targetType;
application.DisplayAlerts = false;
application.Visible = false;
Excel.Worksheet wSheet = null;
object oMissiong = System.Reflection.Missing.Value;
workBook = application.Workbooks.Open(sourcePath, oMissiong, oMissiong, oMissiong, oMissiong, oMissiong,
oMissiong, oMissiong, oMissiong, oMissiong, oMissiong, oMissiong, oMissiong, oMissiong, oMissiong);
workBook.ExportAsFixedFormat(targetType, target, Excel.XlFixedFormatQuality.xlQualityStandard, true, false, missing, missing, missing, missing);
result = true;
}
catch
{
result = false;
}
finally
{
if (workBook != null)
{
workBook.Close(true, missing, missing);
workBook = null;
}
if (application != null)
{
application.Quit();
application = null;
}
}
GC.Collect();
GC.WaitForPendingFinalizers();
GC.Collect();
GC.WaitForPendingFinalizers();
return result;
}
其中对文件打开时,报错:“异常来自HRESULT:0X80010105(RPC_SERVERFAULT)”,我们这个原因是因为我们Excel的加载项的问题!我们可以做如下操作(我计算机装了福昕阅读器):
我就查看到了我的文件中勾选了FoxitReader PDF Creator COM Add-in 这个选项,我将此选项祛除后,点击确定,再重新运行我的算法,得以成功运行!每个人计算机的加载项不一定相同,你可以查看你的计算机然后把里面pdf的加载项去掉,就OK了。