• C#将Word,Excel与Html,PDF互转


        public class OfficeHelper
        {
            /// <summary>
            /// word转成html
            /// </summary>
            /// <param name="path"></param>
            public static string WordToHtml(string path)
            {
                //在此处放置用户代码以初始化页面
                Word.Application word = new Word.Application();
                Type wordType = word.GetType();
                Word.Documents docs = word.Documents;
                Type docsType = docs.GetType();
                try
                {
                    Word.Document doc =(Word.Document)docsType.InvokeMember("Open", System.Reflection.BindingFlags.InvokeMethod, null, docs,new Object[] {path, true, true});
                    //转换格式,另存为
                    Type docType = doc.GetType();
                    string strSaveFileName = path.Substring(0, path.LastIndexOf('.')) + ".html";
                    object saveFileName = (object) strSaveFileName;
                    docType.InvokeMember("SaveAs", System.Reflection.BindingFlags.InvokeMethod, null, doc,
                        new object[] {saveFileName, Word.WdSaveFormat.wdFormatHTML});
                    docType.InvokeMember("Close", System.Reflection.BindingFlags.InvokeMethod, null, doc, null);
                    return saveFileName.ToString();
                }
                catch
                {
                    throw new Exception("文件转换出错");
                }
                finally
                {
                    //退出 Word
                    wordType.InvokeMember("Quit", System.Reflection.BindingFlags.InvokeMethod, null, word, null);
                    GC.Collect();
                    GC.WaitForPendingFinalizers();
                }
            }
    
            /// <summary>
            /// word转成pdf
            /// </summary>
            /// <param name="path"></param>
            public static string WordToPdf(string path)
            {
                //在此处放置用户代码以初始化页面
                Word.Application word = new Word.Application();
                Type wordType = word.GetType();
                Word.Documents docs = word.Documents;
                Type docsType = docs.GetType();
                try
                {
                    Word.Document doc =(Word.Document)docsType.InvokeMember("Open", System.Reflection.BindingFlags.InvokeMethod, null, docs, new Object[] {path, true, true});
                    //转换格式,另存为
                    Type docType = doc.GetType();
                    string strSaveFileName = path.Split('.').GetValue(0) + ".pdf";
                    object saveFileName = (object) strSaveFileName;
                    docType.InvokeMember("SaveAs", System.Reflection.BindingFlags.InvokeMethod, null, doc,
                        new object[] {saveFileName, Word.WdSaveFormat.wdFormatPDF});
                    docType.InvokeMember("Close", System.Reflection.BindingFlags.InvokeMethod, null, doc, null);
                    return saveFileName.ToString();
                }
                catch
                {
                    throw new Exception("文件转换出错");
                }
                finally
                {
                    //退出 Word
                    wordType.InvokeMember("Quit", System.Reflection.BindingFlags.InvokeMethod, null, word, null);
                    GC.Collect();
                    GC.WaitForPendingFinalizers();
                }
            }
    
    
            /// <summary>
            /// Excel转成html
            /// </summary>
            /// <param name="path"></param>
            public static string ExcelToHtml(string path)
            {
                Excel.Application repExcel = new Excel.Application();//实例化Excel
                Excel.Workbook workbook = null;
                try
                {
                    workbook = repExcel.Application.Workbooks.Open(path, Type.Missing, Type.Missing, Type.Missing,
                        Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing,
                        Type.Missing, Type.Missing, Type.Missing, Type.Missing);
                    object htmlFile = path.Substring(0, path.LastIndexOf('.')) + ".html";
                    object ofmt = Excel.XlFileFormat.xlHtml;
                    workbook.SaveAs(htmlFile, ofmt, Type.Missing, Type.Missing, Type.Missing, Type.Missing,
                        Excel.XlSaveAsAccessMode.xlNoChange, Type.Missing, Type.Missing, Type.Missing, Type.Missing,
                        Type.Missing); // 进行另存为操作   
                    return htmlFile.ToString();
                }
                catch
                {
                    throw new Exception("文件转换出错");
                }
                finally
                {
                    if (workbook != null)
                    {
                        workbook.Close(true, Type.Missing, Type.Missing);
                    }
                    repExcel.Quit();
                    GC.Collect();
                    GC.WaitForPendingFinalizers();
                    GC.Collect();
                    GC.WaitForPendingFinalizers();
                }
            }
    
            /// <summary>
            /// 把Excel文件转换成PDF格式文件
            /// </summary>
            /// <param name="path">源文件路径</param>
            /// <returns>true=转换成功</returns>
            public static string ExcelToPdf(string path)
            {
                Excel.XlFixedFormatType targetType = Excel.XlFixedFormatType.xlTypePDF;
                object missing = Type.Missing;
                Excel.Application repExcel = new Excel.Application();
                Excel.Workbook workBook = null;
                try
                {
                    string savePath = path.Substring(0, path.LastIndexOf('.')) + ".pdf";
                    object target = savePath;
                    workBook = repExcel.Application.Workbooks.Open(path, 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);
                    return savePath;
                }
                catch
                {
                    throw new Exception("文件转换出错");
                }
                finally
                {
                    if (workBook != null)
                    {
                        workBook.Close(true, missing, missing);
                    }
                    repExcel.Quit();
                    GC.Collect();
                    GC.WaitForPendingFinalizers();
                    GC.Collect();
                    GC.WaitForPendingFinalizers();
                }
            }
        }
  • 相关阅读:
    JQuery
    Ubuntu18.04
    Ubuntu18.04
    Ubuntu18.04
    Ubuntu18.04
    Cordova
    Android
    Android
    Delphi
    postgresql之 drop & delete & truncate
  • 原文地址:https://www.cnblogs.com/xuhang/p/5204987.html
Copyright © 2020-2023  润新知