问题描述
利用c#把excel转化成pdf格式,从网上找了些代码,试验了下结果调试时候报错,ex.message:出现异常值不在预期的范围内出错的代码如下privateboolXLSConvertToPDF(stringsourcePath,stringtargetPath){boolresult=false;Excel.XlFixedFormatTypetargetType=Excel.XlFixedFormatType.xlTypePDF;objectmissing=Type.Missing;Excel.ApplicationClassapplication=null;Excel.WorkbookworkBook=null;try{application=newMicrosoft.Office.Interop.Excel.ApplicationClass();objecttarget=targetPath;objecttype=targetType;workBook=application.Workbooks.Open(sourcePath,missing,missing,missing,missing,missing,missing,missing,missing,missing,missing,missing,missing,missing,missing);workBook.ExportAsFixedFormat(targetType,target,Excel.XlFixedFormatQuality.xlQualityStandard,true,false,missing,missing,missing,missing);result=true;}catch(Exceptionex){LogWriter.WriteToTxT(ex.Message);LogWriter.WriteToTxT("PDF生成失败");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();}returnresult;}
错误的地方出现在这里,if(excelWorkBook!=null){workBook.ExportAsFixedFormat(targetType,target,Excel.XlFixedFormatQuality.xlQualityStandard,true,false,missing,missing,missing,missing);}调试时候报错,ex.message:出现异常值不在预期的范围内网上有人给的例子结果是引用1楼ray924922279的回复:
Microsoft.Office.Interop.Excel.XlFixedFormatTypeparamExportFormat=Microsoft.Office.Interop.Excel.XlFixedFormatType.xlTypePDF;Microsoft.Office.Interop.Excel.XlFixedFormatQualityparamExportQuality=Microsoft.Office.Interop.Excel.XlFixedFormatQuality.xlQualityStandard;应该是enum类型enumMicrosoft.Office.Interop.Excel.XlFixedFormatTypeparamExportFormat=enumMicrosoft.Office.Interop.Excel.XlFixedFormatType.xlTypePDF;enumMicrosoft.Office.Interop.Excel.XlFixedFormatQualityparamExportQuality=enumMicrosoft.Office.Interop.Excel.XlFixedFormatQuality.xlQualityStandard;
有知道具体解决方案的大虾吗
解决方案
解决方案二:
解决方案三:
是由于excel中有计算表达式,把.Excel.XlFixedFormatQuality.xlQualityStandard;改成XlFixedFormatQuality.xlQualityMinimum