private bool XLSConvertToPDF(string sourcePath, string targetPath) { bool result = false; Microsoft.Office.Interop.Excel.XlFixedFormatType targetType = Microsoft.Office.Interop.Excel.XlFixedFormatType.xlTypePDF; object missing = Type.Missing; Microsoft.Office.Interop.Excel.Application ExcelApp = null; Microsoft.Office.Interop.Excel._Workbook ExcelBook = null; try { object target = targetPath; object type = targetType; System.Globalization.CultureInfo CurrentCI = System.Threading.Thread.CurrentThread.CurrentCulture; System.Threading.Thread.CurrentThread.CurrentCulture = new System.Globalization.CultureInfo("en-US"); ExcelApp = new Microsoft.Office.Interop.Excel.Application(); System.Reflection.Missing missingValue = System.Reflection.Missing.Value; ExcelBook = ExcelApp.Workbooks.Open(sourcePath, missingValue, missingValue, missingValue, missingValue, missingValue, missingValue, missingValue, missingValue, missingValue, missingValue, missingValue, missingValue, missingValue, missingValue); ExcelBook.ExportAsFixedFormat(targetType, target, Microsoft.Office.Interop.Excel.XlFixedFormatQuality.xlQualityStandard, true, false, missing, missing, missing, missing); result = true; } catch { result = false; } finally { if (ExcelBook != null) { ExcelBook.Close(true, missing, missing); ExcelBook = null; } if (ExcelApp != null) { ExcelApp.Quit(); ExcelApp = null; } GC.Collect(); GC.WaitForPendingFinalizers(); GC.Collect(); GC.WaitForPendingFinalizers(); } return(result); }
private bool XLSConvertToPDF(string sourcePath, string targetPath) { // MessageBox.Show(sourcePath+"\n"+targetPath); bool result = false; Microsoft.Office.Interop.Excel.XlFixedFormatType targetType = Microsoft.Office.Interop.Excel.XlFixedFormatType.xlTypePDF; object missing = Type.Missing; Microsoft.Office.Interop.Excel.ApplicationClass application = null; Microsoft.Office.Interop.Excel.Workbook workBook = null; try { application = new Microsoft.Office.Interop.Excel.ApplicationClass(); object target = targetPath; object type = targetType; workBook = application.Workbooks.Open(sourcePath, missing, missing, missing, missing, missing, missing, missing, missing, missing, missing, missing, missing, missing, missing); workBook.ExportAsFixedFormat(targetType, target, Microsoft.Office.Interop.Excel.XlFixedFormatQuality.xlQualityStandard, true, false, missing, missing, missing, missing); result = true; } catch (Exception e) { MessageBox.Show(e.Message); 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); }
/// <summary> /// 把Microsoft.Office.Interop.Excel文件转换成PDF格式文件 /// </summary> /// <param name="sourcePath">源文件路径</param> /// <param name="targetPath">目标文件路径</param> /// <returns>true=转换成功</returns> public static bool ExcelToPDF(string sourcePath, string targetPath) { bool result = false; Microsoft.Office.Interop.Excel.XlFixedFormatType targetType = Microsoft.Office.Interop.Excel.XlFixedFormatType.xlTypePDF; object missing = Type.Missing; Microsoft.Office.Interop.Excel.ApplicationClass application = null; Microsoft.Office.Interop.Excel.Workbook workBook = null; try { application = new Microsoft.Office.Interop.Excel.ApplicationClass { Visible = false }; workBook = application.Workbooks.Open(sourcePath); workBook.SaveAs(); workBook.ExportAsFixedFormat(targetType, targetPath); result = true; } catch (Exception e) { result = false; throw new Exception(e.Message); } 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); }
static void exportAsFixedFormat(string inputPath, string outputPath, Microsoft.Office.Interop.Excel.XlFixedFormatType type) { if (!File.Exists(inputPath)) { throw new FileNotFoundException(string.Format("The specified file {0} does not exist.", inputPath), inputPath); } try { Microsoft.Office.Interop.Excel.Application app = new Microsoft.Office.Interop.Excel.Application(); app.Workbooks.Open(inputPath) .ExportAsFixedFormat(type, outputPath); app.Quit(); } catch (Exception e) { throw new Exception(string.Format("Unable to convert {0} to {1}", inputPath, outputPath), e); } }
/// <summary> /// Excel转换PDF /// </summary> /// <param name="sourcePath"></param> /// <param name="targetPath"></param> /// <param name="targetType"></param> /// <returns></returns> public bool Convert2PDF(string sourcePath, string targetPath, Microsoft.Office.Interop.Excel.XlFixedFormatType targetType) { bool result; object missing = Type.Missing; Microsoft.Office.Interop.Excel.Application application = null; Microsoft.Office.Interop.Excel.Workbook workBook = null; try { application = new Microsoft.Office.Interop.Excel.Application(); object target = targetPath; object type = targetType; workBook = application.Workbooks.Open(sourcePath, missing, missing, missing, missing, missing, missing, missing, missing, missing, missing, missing, missing, missing, missing); workBook.ExportAsFixedFormat(targetType, target, Microsoft.Office.Interop.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); }
/// <summary> /// 把Microsoft.Office.Interop.Excel文件转换成PDF格式文件 /// </summary> /// <param name="sourcePath">源文件路径</param> /// <param name="targetPath">目标文件路径</param> /// <returns>true=转换成功</returns> public static bool ExcelToPDF(string sourcePath, string targetPath) { targetPath = Regex.Replace(targetPath, " ", "", RegexOptions.IgnoreCase);//去除字符串中间的空格 bool result = false; Microsoft.Office.Interop.Excel.XlFixedFormatType targetType = Microsoft.Office.Interop.Excel.XlFixedFormatType.xlTypePDF; object missing = Type.Missing; Microsoft.Office.Interop.Excel.ApplicationClass application = null; Microsoft.Office.Interop.Excel.Workbook workBook = null; try { bool TimeOver = false; //转换时间到了 System.Timers.Timer timer = new System.Timers.Timer(30000); timer.AutoReset = false; //只循环一次 timer.Elapsed += delegate(object sender, System.Timers.ElapsedEventArgs e) { TimeOver = true; }; timer.Start(); Thread th = new Thread(new ThreadStart(delegate() { try { application = new Microsoft.Office.Interop.Excel.ApplicationClass(); application.Visible = false; workBook = application.Workbooks.Open(sourcePath); workBook.Application.DisplayAlerts = false; workBook.SaveAs(); workBook.ExportAsFixedFormat(targetType, targetPath); } catch { } })); th.IsBackground = true;//后台线程 th.Start(); //如果转换没有成功就一直循环 while (th.ThreadState != System.Threading.ThreadState.Stopped) { //如果一直没有转换成功,但是最大的转换时间到了也直接跳出While循环 if (TimeOver) { break; } } if (th.ThreadState != System.Threading.ThreadState.Stopped) { th.Abort(); } } catch (Exception e) { Console.WriteLine(e.Message); 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(); } //判断文件是否转换成功 if (File.Exists(targetPath)) { return(true); } else { return(false); } }