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转化为一个页面,则需要修改代码

  • 相关阅读:
    jvm gc 线程
    高分辨率图像建筑物提取数据集制作
    Ubuntu 更改软件源
    后台程序员简单应用前端的bootstrap(小白)
    php--常见算法3
    php--常见算法2
    php--常见算法1
    php三种排序算法
    Django学习之十二:Cache 缓存组件
    Restframe_work 回顾记忆集
  • 原文地址:https://www.cnblogs.com/rxjy/p/3282394.html
Copyright © 2011-2022 走看看