Office系列在线预览

最近客户有个需求,需要在线预览PPT、Excel、Word,开始打算用第三方组建去读取 office系列,然后生成html,这样的话样式相当于丢了,只剩下数据,而且第三方组件对office版本支持不够完善,最关键的是还是样式丢了!

最后决定,用户在上传的过程中调用office API里面的saveAs,自动生成了静态html,预览的时候就直接访问的该html页面。

[a].WordToHtml

 1    public   static   string  WordToHtml( string  path,  string  savePath,  string  wordFileName)
 2          {
 3 
 4               // 在此处放置用户代码以初始化页面
 5              Microsoft.Office.Interop.Word.Application word  =   new  Word.Application();
 6 
 7              Type wordType  =  word.GetType();
 8 
 9              Word.Documents docs  =  word.Documents;
10 
11               // 打开文件
12              Type docsType  =  docs.GetType();
13              Word.Document doc  =  (Word.Document)docsType.InvokeMember( " Open " , System.Reflection.BindingFlags.InvokeMethod,  null , docs,  new  Object[] { path,  true true  });
14 
15               // 转换格式,另存为
16              Type docType  =  doc.GetType();
17 
18               string  wordSaveFileName  =  savePath;
19 
20               string  strSaveFileName  =  savePath + wordFileName  +   " .html " ;
21 
22               object  saveFileName  =  ( object )strSaveFileName;
23 
24              docType.InvokeMember( " SaveAs " , System.Reflection.BindingFlags.InvokeMethod,  null , doc,  new   object [] { saveFileName, Word.WdSaveFormat.wdFormatFilteredHTML });
25 
26              docType.InvokeMember( " Close " , System.Reflection.BindingFlags.InvokeMethod,  null , doc,  null );
27 
28               // 退出 Word
29              wordType.InvokeMember( " Quit " , System.Reflection.BindingFlags.InvokeMethod,  null , word,  null );
30 
31               return  saveFileName.ToString();
32          }

 

[b].ExcelToHtml

 1    public   static   void  ExcelToHtml( string  path, string  savePath,  string  wordFileName)
 2          {
 3               string  str  =   string .Empty;
 4              Microsoft.Office.Interop.Excel.Application repExcel  =   new  Microsoft.Office.Interop.Excel.Application();
 5              Microsoft.Office.Interop.Excel.Workbook workbook  =   null ;
 6              Microsoft.Office.Interop.Excel.Worksheet worksheet  =   null ;
 7              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);
 8              worksheet  =  (Microsoft.Office.Interop.Excel.Worksheet)workbook.Worksheets[ 1 ];
 9               object  htmlFile  = savePath + wordFileName +   " .html " ;
10               object  ofmt  =  Microsoft.Office.Interop.Excel.XlFileFormat.xlHtml;
11              workbook.SaveAs(htmlFile, 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);
12               object  osave  =   false ;
13              workbook.Close(osave, Type.Missing, Type.Missing);
14              repExcel.Quit();
15             
16          }

 

[c].PPTToHtml

  public   static    void  PPTToHtml( string  path,  string  savePath,  string  wordFileName)
        {
            Microsoft.Office.Interop.PowerPoint.Application ppApp 
=   new  Microsoft.Office.Interop.PowerPoint.Application();
            
string  strSourceFile  =  path;
            
string  strDestinationFile  =  savePath + wordFileName + " .html " ;
            Microsoft.Office.Interop.PowerPoint.Presentation prsPres 
=  ppApp.Presentations.Open(strSourceFile, MsoTriState.msoTrue, MsoTriState.msoFalse, MsoTriState.msoFalse);
            prsPres.SaveAs(strDestinationFile, Microsoft.Office.Interop.PowerPoint.PpSaveAsFileType.ppSaveAsHTML, MsoTriState.msoTrue);
            prsPres.Close();
            ppApp.Quit();

        }

 

当完成该功能的时候,上帝那边传来噩耗,他们表示不愿意在服务器上安装office,所以我们继续寻找解决方案······

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值