zoukankan      html  css  js  c++  java
  • 将Excel,ppt和word转化为html

    有些时候可能需要将Excel,ppt和word转化为html在页面上显示。我从网上查到一些代码,记录在这里以供需要的朋友参考

    1.将word转化为html显示

    //========================================================================
            //  函数名: WordToHtml
            /// <summary> 
            /// Word转成Html 
            /// </summary> 
            /// <param name="wordfilename">word文件名</param> 
            /*=======================================================================
             变更记录
             序号   更新日期  开发者   变更内容
             0001   2008/07/22  张          新建
             =======================================================================*/
            public static string WordToHtml(object wordfilename)
            {
                //在此处放置用户代码以初始化页面 
                word.Application word = new word.Application();
                Type wordtype = word.GetType();
                word.Documents docs = word.Documents;
                //打开文件 
                Type docstype = docs.GetType();
                word.Document doc = (word.Document)docstype.InvokeMember("open", System.Reflection.BindingFlags.InvokeMethod, null, docs, new object[] { wordfilename, true, true });
                //转换格式,另存为 
                Type doctype = doc.GetType();
                string wordsavefilename = wordfilename.ToString();
                string strsavefilename = wordsavefilename.Substring(0, wordsavefilename.Length - 3) + "html";
                object savefilename = (object)strsavefilename;
                doctype.InvokeMember("saveas", System.Reflection.BindingFlags.InvokeMethod, null, doc, new object[] { savefilename, Microsoft.Office.Interop.Word.WdSaveFormat.wdFormatFilteredHTML });
                doctype.InvokeMember("close", System.Reflection.BindingFlags.InvokeMethod, null, doc, null);
                // 退出 word 
                wordtype.InvokeMember("quit", System.Reflection.BindingFlags.InvokeMethod, null, word, null);
                return savefilename.ToString();
            }

    2.将PPT转化为html显示

    //========================================================================
            //  函数名: PPTToHtml
            /// <summary> 
            /// PPT转成Html 
            /// </summary> 
            /// <param name="pptFilename">PPT文件名</param> 
            /*=======================================================================
             变更记录
             序号   更新日期  开发者   变更内容
             0001   2008/07/22  张          新建
             =======================================================================*/
            public string PPTToHtml(string pptFilename)
            {
                //被转换的html文档保存的位置
                string saveFileName = pptFilename + ".html";
                Microsoft.Office.Interop.PowerPoint.Application ppt = new Microsoft.Office.Interop.PowerPoint.Application();
                Microsoft.Office.Core.MsoTriState m1 = new MsoTriState();
                Microsoft.Office.Core.MsoTriState m2 = new MsoTriState();
                Microsoft.Office.Core.MsoTriState m3 = new MsoTriState();
                Microsoft.Office.Interop.PowerPoint.Presentation pp = ppt.Presentations.Open(pptFilename, m1, m2, m3);
                pp.SaveAs(saveFileName, Microsoft.Office.Interop.PowerPoint.PpSaveAsFileType.ppSaveAsHTML, Microsoft.Office.Core.MsoTriState.msoTriStateMixed);
                pp.Close();
                //返回文件名
                return saveFileName;
            }

    3.将Excel转化为html显示

    //========================================================================
            //  函数名: ExcelToHtml
            /// <summary> 
            /// Excel转成Html 
            /// </summary> 
            /// <param name="excelFileName">Excel文件名</param> 
            /*=======================================================================
             变更记录
             序号   更新日期  开发者   变更内容
             0001   2008/07/22  张          新建
             =======================================================================*/
            public string ExcelToHtml(string excelFileName)
             {
                 //实例化Excel
                 Microsoft.Office.Interop.Excel.Application repExcel = new Microsoft.Office.Interop.Excel.Application();
                 Microsoft.Office.Interop.Excel.Workbook workbook = null;
                 Microsoft.Office.Interop.Excel.Worksheet worksheet = null;
                 //打开文件,n.FullPath是文件路径
                 workbook = repExcel.Application.Workbooks.Open(excelFileName, 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);
                 worksheet = (Microsoft.Office.Interop.Excel.Worksheet)workbook.Worksheets[1];
                 string filesavefilename = excelFileName.ToString();
                 string strsavefilename = filesavefilename.Substring(0, filesavefilename.Length - 3) + "html";
                 object savefilename = (object)strsavefilename;
                 object ofmt = Microsoft.Office.Interop.Excel.XlFileFormat.xlHtml;
                 //进行另存为操作  
                 workbook.SaveAs(savefilename, ofmt, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Microsoft.Office.Interop.Excel.XlSaveAsAccessMode.xlNoChange, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing); 
                 object osave = false;
                 //逐步关闭所有使用的对象
                 workbook.Close(osave, Type.Missing, Type.Missing);
                 repExcel.Quit();
                 System.Runtime.InteropServices.Marshal.ReleaseComObject(worksheet);
                 worksheet = null;
                 //垃圾回收
                 GC.Collect();
                 System.Runtime.InteropServices.Marshal.ReleaseComObject(workbook);
                 workbook = null;
                 GC.Collect();
                 System.Runtime.InteropServices.Marshal.ReleaseComObject(repExcel.Application.Workbooks);
                 GC.Collect();
                 System.Runtime.InteropServices.Marshal.ReleaseComObject(repExcel);
                 repExcel = null;
                 GC.Collect();
                //依据时间杀灭进程
                 System.Diagnostics.Process[] process = System.Diagnostics.Process.GetProcessesByName("EXCEL");
                 foreach (System.Diagnostics.Process p in process)
                 {
                     if (DateTime.Now.Second - p.StartTime.Second > 0 && DateTime.Now.Second - p.StartTime.Second < 5)
                     {
                         p.Kill();
                     }
                 }
     
                return savefilename.ToString();
             }

              以上是转换成为html文件的方法,转换成功后会在文件夹下会生对应的图片文件夹,和样式文件,和html文件。其中如果Excel中包含多个sheet时,转化后的html会包含多个tab,如果想每个sheet转化为一个页面,则需要修改代码

  • 相关阅读:
    poj 3528 (三维几何求凸包+凸包表面积)
    dijkstra模板(好像是斐波那契额堆优化,但我为什么看起来像优先队列优化,和spfa一样)
    最大空凸包模板
    ICPC 2017–2018, NEERC, Northern Subregional Contest St Petersburg, November 4, 2017 I题
    hdu 5248 序列变换
    hdu 2063(二分图模板测试)
    组合数
    85. Maximal Rectangle 由1拼出的最大矩形
    750. Number Of Corner Rectangles四周是点的矩形个数
    801. Minimum Swaps To Make Sequences Increasing 为使两个数组严格递增,所需要的最小交换次数
  • 原文地址:https://www.cnblogs.com/rxjy/p/3282394.html
Copyright © 2011-2022 走看看