Web里面展现Office、PDF文档

一直在想基于Web如何更完美、更经济、更便捷的展现Office、PDF文档。

 

从其他一个系统看到的,先保存下来以备后用。谢谢原创。

 

 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
 <link rel="stylesheet" rev="stylesheet" href="/style/public.css?v=V6_6_18_17498" type="text/css" media="all" />
 <link rel="stylesheet" rev="stylesheet" href="/style/skin1.css?v=V6_6_18_17498" type="text/css" media="all" />
 <script language="javascript" src="../js/jquery-1.3.2.min.js?v=V6_6_18_17498" type=""></script>
  
 <title>在线预览 - 111111111111.xlsx</title>
 <link href="http://www.cnblogs.com/style/viewstl.css?v=V6_6_18_17498" rel="stylesheet" type="text/css" />
  
 <script type="text/javascript">
     function resize() {
     if(!document.getElementById("divContent")){
     return false;
     }
     var win = document.documentElement.clientHeight;
     var hdr = document.getElementById("divHeader").clientHeight;
     var ctn = 0;
     if(win - hdr > 0) {
     ctn = win - hdr;
     }
     document.getElementById("divContent").style.height = ctn + "px";
     }
  
     window.onresize = resize;
  
 //2012-4-11 zny IE6/7 最大化窗口后高度自适应
 $(document).ready(function(){
 //调用函数
 var pagestyle = function() {
 var iframe = $("#FM_Content");
 var h = $(window).height() - iframe.offset().top;
 iframe.height(h);
 }
 //注册加载事件
 $("#FM_Content").load(pagestyle);
 //注册窗体改变大小事件
 $(window).resize(pagestyle);
 });
  
     function loaded() {
     resize();
     }
   function show() {
   document.getElementById("loading_remainder").style.display="none";
   }
 function showView()
 {
 if($("#PIC_Content").length>0)
 {
   $(".operate").hide();
   $("#name").hide();
   if (!document.all){//Firefox   
     window.print();
     window.setTimeout("$('.operate').show();$('#name').show();",2500);return;
   }
 window.print();
 $("#name").show();
 $(".operate").show();
 }
 else
 {
 frames["FM_Content"].frSheet.focus();
 frames["FM_Content"].frSheet.print();
 }
 
 </script>
  
 </head>
  
 <body onload="loaded()">
  
 <div id="divPage">
 <!--头部-->
 <div class="header1" id="divHeader">
   <div class="operate">
        <div style="" class="btn_bg"><a oncontextmenu="this.href='download.php?ent_id=2&amp;mailbox=INBOX&amp;passed_id=4010&amp;file_id=&amp;absolute_dl=true&amp;&amp;right_click=1';return true;" onclick="this.href='download.php?ent_id=2&amp;mailbox=INBOX&amp;passed_id=4010&amp;file_id=&amp;absolute_dl=true';return true;" href="download.php?"><span><img src="http://images.cnblogs.com/blank.gif" class="ico-xiazai"/>下载</span></a></div>
        <div style="" class="btn_bg"><a href="####" onclick="showView();"><span><img src="http://images.cnblogs.com/blank.gif" class="ico-daying"/>打印</span></a></div>
        <div class="btn_bg"><a href="####" onclick="window.close(); "><span><img src="http://images.cnblogs.com/blank.gif" class="ico-close"/>关闭</span></a></div>
   </div>
 <table border="0" cellspacing="0" cellpadding="0" class="pathz_w"><tr><td>
     <div class="pathz" id="name">文件名称:11111111.xlsx<span>*部分格式或图片可能无法预览,请下载附件查看</span></div>
     </td></tr></table> 
     </div>
  
 <div id="loading_remainder" style="text-align: center;">
 <br/>
 <br/>
 正在加载,请稍候 ...
 </div>
 <div class="content2" id="divContent" >
 <iframe name="FM_Content" id="FM_Content" width="100%" height="10" frameborder="0" src="http://www.cnblogs.com/onlineview1/1111111/2.htm" onload="show()"></iframe>
 </div>
  
  
 </div>
 </body>
 </html>
 

 

-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------

 <html xmlns="http://www.w3.org/TR/REC-html40" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:v="urn:schemas-microsoft-com:vml" xmlns:dt="uuid:C2F41010-65B3-11d1-A29F-00AA00C14882" xmlns:x="urn:schemas-microsoft-com:office:excel">
   <head>
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
     <meta Name="Excel Workbook Frameset">
     <meta Name="ProgId" content="Excel.Sheet">
     <title>2</title>
     <!--[if gte mso 9]>
       <xml>
         <o:DocumentProperties>
           <o:TotalTime>0</o:TotalTime>
           <o:Created>2006-09-13T19:21:51Z</o:Created>
           <o:LastSaved>2012-12-12T14:02:45Z</o:LastSaved>
         </o:DocumentProperties>
         <o:OfficeDocumentSettings>
           <o:Colors>
             <o:Color>
               <o:Index>0</o:Index>
               <o:RGB>#000000</o:RGB>
             </o:Color>
             <o:Color>
               <o:Index>1</o:Index>
               <o:RGB>#FFFFFF</o:RGB>
             </o:Color>
             <o:Color>
               <o:Index>2</o:Index>
               <o:RGB>#FF0000</o:RGB>
             </o:Color>
             <o:Color>
               <o:Index>3</o:Index>
               <o:RGB>#00FF00</o:RGB>
             </o:Color>
             <o:Color>
               <o:Index>4</o:Index>
               <o:RGB>#0000FF</o:RGB>
             </o:Color>
             <o:Color>
               <o:Index>5</o:Index>
               <o:RGB>#FFFF00</o:RGB>
             </o:Color>
             <o:Color>
               <o:Index>6</o:Index>
               <o:RGB>#FF00FF</o:RGB>
             </o:Color>
             <o:Color>
               <o:Index>7</o:Index>
               <o:RGB>#00FFFF</o:RGB>
             </o:Color>
             <o:Color>
               <o:Index>8</o:Index>
               <o:RGB>#800000</o:RGB>
             </o:Color>
             <o:Color>
               <o:Index>9</o:Index>
               <o:RGB>#008000</o:RGB>
             </o:Color>
             <o:Color>
               <o:Index>10</o:Index>
               <o:RGB>#000080</o:RGB>
             </o:Color>
             <o:Color>
               <o:Index>11</o:Index>
               <o:RGB>#808000</o:RGB>
             </o:Color>
             <o:Color>
               <o:Index>12</o:Index>
               <o:RGB>#800080</o:RGB>
             </o:Color>
             <o:Color>
               <o:Index>13</o:Index>
               <o:RGB>#008080</o:RGB>
             </o:Color>
             <o:Color>
               <o:Index>14</o:Index>
               <o:RGB>#C0C0C0</o:RGB>
             </o:Color>
             <o:Color>
               <o:Index>15</o:Index>
               <o:RGB>#808080</o:RGB>
             </o:Color>
             <o:Color>
               <o:Index>16</o:Index>
               <o:RGB>#9999FF</o:RGB>
             </o:Color>
             <o:Color>
               <o:Index>17</o:Index>
               <o:RGB>#993366</o:RGB>
             </o:Color>
             <o:Color>
               <o:Index>18</o:Index>
               <o:RGB>#FFFFCC</o:RGB>
             </o:Color>
             <o:Color>
               <o:Index>19</o:Index>
               <o:RGB>#CCFFFF</o:RGB>
             </o:Color>
             <o:Color>
               <o:Index>20</o:Index>
               <o:RGB>#660066</o:RGB>
             </o:Color>
             <o:Color>
               <o:Index>21</o:Index>
               <o:RGB>#FF8080</o:RGB>
             </o:Color>
             <o:Color>
               <o:Index>22</o:Index>
               <o:RGB>#0066CC</o:RGB>
             </o:Color>
             <o:Color>
               <o:Index>23</o:Index>
               <o:RGB>#CCCCFF</o:RGB>
             </o:Color>
             <o:Color>
               <o:Index>24</o:Index>
               <o:RGB>#000080</o:RGB>
             </o:Color>
             <o:Color>
               <o:Index>25</o:Index>
               <o:RGB>#FF00FF</o:RGB>
             </o:Color>
             <o:Color>
               <o:Index>26</o:Index>
               <o:RGB>#FFFF00</o:RGB>
             </o:Color>
             <o:Color>
               <o:Index>27</o:Index>
               <o:RGB>#00FFFF</o:RGB>
             </o:Color>
             <o:Color>
               <o:Index>28</o:Index>
               <o:RGB>#800080</o:RGB>
             </o:Color>
             <o:Color>
               <o:Index>29</o:Index>
               <o:RGB>#800000</o:RGB>
             </o:Color>
             <o:Color>
               <o:Index>30</o:Index>
               <o:RGB>#008080</o:RGB>
             </o:Color>
             <o:Color>
               <o:Index>31</o:Index>
               <o:RGB>#0000FF</o:RGB>
             </o:Color>
             <o:Color>
               <o:Index>32</o:Index>
               <o:RGB>#00CCFF</o:RGB>
             </o:Color>
             <o:Color>
               <o:Index>33</o:Index>
               <o:RGB>#CCFFFF</o:RGB>
             </o:Color>
             <o:Color>
               <o:Index>34</o:Index>
               <o:RGB>#CCFFCC</o:RGB>
             </o:Color>
             <o:Color>
               <o:Index>35</o:Index>
               <o:RGB>#FFFF99</o:RGB>
             </o:Color>
             <o:Color>
               <o:Index>36</o:Index>
               <o:RGB>#99CCFF</o:RGB>
             </o:Color>
             <o:Color>
               <o:Index>37</o:Index>
               <o:RGB>#FF99CC</o:RGB>
             </o:Color>
             <o:Color>
               <o:Index>38</o:Index>
               <o:RGB>#CC99FF</o:RGB>
             </o:Color>
             <o:Color>
               <o:Index>39</o:Index>
               <o:RGB>#FFCC99</o:RGB>
             </o:Color>
             <o:Color>
               <o:Index>40</o:Index>
               <o:RGB>#3366FF</o:RGB>
             </o:Color>
             <o:Color>
               <o:Index>41</o:Index>
               <o:RGB>#33CCCC</o:RGB>
             </o:Color>
             <o:Color>
               <o:Index>42</o:Index>
               <o:RGB>#99CC00</o:RGB>
             </o:Color>
             <o:Color>
               <o:Index>43</o:Index>
               <o:RGB>#FFCC00</o:RGB>
             </o:Color>
             <o:Color>
               <o:Index>44</o:Index>
               <o:RGB>#FF9900</o:RGB>
             </o:Color>
             <o:Color>
               <o:Index>45</o:Index>
               <o:RGB>#FF6600</o:RGB>
             </o:Color>
             <o:Color>
               <o:Index>46</o:Index>
               <o:RGB>#666699</o:RGB>
             </o:Color>
             <o:Color>
               <o:Index>47</o:Index>
               <o:RGB>#969696</o:RGB>
             </o:Color>
             <o:Color>
               <o:Index>48</o:Index>
               <o:RGB>#003366</o:RGB>
             </o:Color>
             <o:Color>
               <o:Index>49</o:Index>
               <o:RGB>#339966</o:RGB>
             </o:Color>
             <o:Color>
               <o:Index>50</o:Index>
               <o:RGB>#003300</o:RGB>
             </o:Color>
             <o:Color>
               <o:Index>51</o:Index>
               <o:RGB>#333300</o:RGB>
             </o:Color>
             <o:Color>
               <o:Index>52</o:Index>
               <o:RGB>#993300</o:RGB>
             </o:Color>
             <o:Color>
               <o:Index>53</o:Index>
               <o:RGB>#75923C</o:RGB>
             </o:Color>
             <o:Color>
               <o:Index>54</o:Index>
               <o:RGB>#DBE5F1</o:RGB>
             </o:Color>
             <o:Color>
               <o:Index>55</o:Index>
               <o:RGB>#EAF1DD</o:RGB>
             </o:Color>
           </o:Colors>
         </o:OfficeDocumentSettings>
       </xml>
     <![endif]-->
     <link rel="File-List" href="./2.files/filelist.xml">
     <link rel="OLE-Object-Data" href="./2.files/oledata.mso">
     <link id="shLink" href="./2.files/Sheet1.htm">
     <link id="shLink" href="./2.files/Sheet2.htm">
     <link id="shLink" href="./2.files/Sheet3.htm">
     <link id="shLink" href="./2.files/Sheet4.htm">
     <!--[if !mso]>
       <STYLE>V\:* {behavior:url(#default#VML);}O\:* {behavior:url(#default#VML);}W\:* {behavior:url(#default#VML);}X\:* {behavior:url(#default#VML);}.shape {behavior:url(#default#VML);}</STYLE>
     <![endif]-->
     <!--[if gte mso 9]>
       <xml>
         <x:ExcelWorkbook>
           <x:ExcelWorksheets>
             <x:ExcelWorksheet>
               <x:Name>222</x:Name>
               <x:WorksheetSource HRef="./2.files/Sheet1.htm"></x:WorksheetSource>
             </x:ExcelWorksheet>
             <x:ExcelWorksheet>
               <x:Name>3333</x:Name>
               <x:WorksheetSource HRef="./2.files/Sheet2.htm"></x:WorksheetSource>
             </x:ExcelWorksheet>
             <x:ExcelWorksheet>
               <x:Name>44444</x:Name>
               <x:WorksheetSource HRef="./2.files/Sheet3.htm"></x:WorksheetSource>
             </x:ExcelWorksheet>
             <x:ExcelWorksheet>
               <x:Name>55555</x:Name>
               <x:WorksheetSource HRef="./2.files/Sheet4.htm"></x:WorksheetSource>
             </x:ExcelWorksheet>
           </x:ExcelWorksheets>
           <x:StyleSheet HRef="./2.files/stylesheet.css"></x:StyleSheet>
           <x:WindowHeight>11633</x:WindowHeight>
           <x:WindowWidth>19191</x:WindowWidth>
           <x:WindowTopX>0</x:WindowTopX>
           <x:WindowTopY>77</x:WindowTopY>
           <x:DonotCalcuLateBeforeSave></x:DonotCalcuLateBeforeSave>
         </x:ExcelWorkbook>
       </xml>
     <![endif]-->
   </head>
   <frameset rows="*,38" border="0" width="0" frameborder="no" framespacing="0">
     <frame src="2.files/Sheet1.htm" Name="frSheet"></frame>
     <frame src="2.files/tabscript.htm" Name="frTabs" marginwidth="0" marginheight="0"></frame>
   </frameset>
   <body></body>
 </html>
 

-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------

using System; using System.Configuration; using System.IO; using Microsoft.Office.Interop.Excel; using System.Diagnostics; using Microsoft.Office.Interop.PowerPoint; using Microsoft.Office;

namespace e {     public class FileHtml     {         public static string FileToHtml(string filePath)         {             string fileExtension = System.IO.Path.GetExtension(filePath).ToLower();             string strss = "|doc|docx|";             string strss2 = "|xls|xlsx|";             string strss3 = "|ppt|pptx|";             if (strss.IndexOf("|" + fileExtension.Substring(1) + "|") > -1)             {                 return wordToHtml(filePath);             }             else if (strss2.IndexOf("|" + fileExtension.Substring(1) + "|") > -1)             {                 return ExcelToHtml(filePath);             }             else if (strss3.IndexOf("|"+fileExtension.Substring(1)+"|") > -1)             {                 return PPTToHtlm(filePath);             }             else             { return ""; }

        }          /// <summary>          ///          /// </summary>          /// <param name="filePath">上传后文件的路径</param>          /// <returns></returns>         public static string wordToHtml(string filePath)         {             try             {                 Microsoft.Office.Interop.Word.ApplicationClass word = new Microsoft.Office.Interop.Word.ApplicationClass();                 Type wordType = word.GetType();                 Microsoft.Office.Interop.Word.Documents docs = word.Documents;

                // 打开文件                 Type docsType = docs.GetType();

                object fileName = filePath;

                Microsoft.Office.Interop.Word.Document doc = (Microsoft.Office.Interop.Word.Document)docsType.InvokeMember("Open",                 System.Reflection.BindingFlags.InvokeMethod, null, docs, new Object[] { fileName, true, true });

                // 转换格式,另存为html                 Type docType = doc.GetType();

                string filename = System.DateTime.Now.ToString() + " " + System.DateTime.Now.Millisecond.ToString() + ".html";

 

                string fpath = "html/" + System.DateTime.Now.Year + "/" + System.DateTime.Now.Month + "/" + System.DateTime.Now.Day + "/";

                string path = (ConfigurationSettings.AppSettings["txtpath"] + fpath);

                Directory.CreateDirectory(path);

                //被转换的html文档保存的位置

                object saveFileName = path + filename.Replace(":", "-");

                /*下面是Microsoft Word 9 Object Library的写法,如果是10,可能写成:                 * docType.InvokeMember("SaveAs", System.Reflection.BindingFlags.InvokeMethod,                 * null, doc, new object[]{saveFileName, Word.WdSaveFormat.wdFormatFilteredHTML});                 * 其它格式:                 * wdFormatHTML                 * wdFormatDocument                 * wdFormatDOSText                 * wdFormatDOSTextLineBreaks                 * wdFormatEncodedText                 * wdFormatRTF                 * wdFormatTemplate                 * wdFormatText                 * wdFormatTextLineBreaks                 * wdFormatUnicodeText                 */                 docType.InvokeMember("SaveAs", System.Reflection.BindingFlags.InvokeMethod,                 null, doc, new object[] { saveFileName, Microsoft.Office.Interop.Word.WdSaveFormat.wdFormatFilteredHTML });

                // 退出 Word                 wordType.InvokeMember("Quit", System.Reflection.BindingFlags.InvokeMethod, null, word, null);                 //返回文件名                 return (fpath + filename.Replace(":", "-"));             }             catch (Exception ex)             {                 return ex.ToString();             }             //finally             //{             //    Process[] myProcesses = Process.GetProcessesByName("WINWORD");             //    foreach (Process myProcess in myProcesses)             //    {             //        myProcess.Kill();             //    }

            //}

        }

        /// <summary>         /// 出现错误,解决不了         /// </summary>         /// <param name="filePath">上传后文件的路径</param>         /// <returns></returns>         public static string PPTToHtlm(string filePath)         {             try             {          

                // 转换格式,另存为html                 string filename = System.DateTime.Now.ToString() + " " + System.DateTime.Now.Millisecond.ToString() + ".html"; string fpath = "html/" + System.DateTime.Now.Year + "/" + System.DateTime.Now.Month + "/" + System.DateTime.Now.Day + "/";

                string path = (ConfigurationSettings.AppSettings["txtpath"] + fpath);

                Directory.CreateDirectory(path);

                //被转换的html文档保存的位置

                string saveFileName = path + filename.Replace(":", "-");

                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(filePath, m1, m2, m3);                 pp.SaveAs(saveFileName, Microsoft.Office.Interop.PowerPoint.PpSaveAsFileType.ppSaveAsHTML, Microsoft.Office.Core.MsoTriState.msoTriStateMixed);                 pp.Close();            

 

                //返回文件名                 return (fpath + filename.Replace(":", "-"));             }             catch (Exception ex)             {                 return ex.ToString();             }             //finally             //{             //    Process[] myProcesses = Process.GetProcessesByName("POWERPNT");             //    foreach (Process myProcess in myProcesses)             //    {             //        myProcess.Kill();             //    }            
            //}         }         /// <summary>         ///
        /// </summary>         /// <param name="filePath">上传后文件的路径</param>         /// <returns></returns>         public static string ExcelToHtml(string filepath)         {             try             {                 // 转换格式,另存为html                 string filename = System.DateTime.Now.ToString() + " " + System.DateTime.Now.Millisecond.ToString() + ".html";                 string fpath = "html/" + System.DateTime.Now.Year + "/" + System.DateTime.Now.Month + "/" + System.DateTime.Now.Day + "/";

                string path = (ConfigurationSettings.AppSettings["txtpath"] + fpath);

                Directory.CreateDirectory(path);

                //被转换的html文档保存的位置

                object saveFileName = path + filename.Replace(":", "-");

                Microsoft.Office.Interop.Excel.Application app = new Microsoft.Office.Interop.Excel.Application();                 app.Visible = false;                 object o = System.Reflection.Missing.Value;                 // object xlsFile=xlsPath;
                // _Workbook xls=app.Workbooks.Open(xlsPath,ref o,ref o,ref o,ref o,ref o,ref o,ref o,ref o,ref o,ref o,ref o,ref o,ref o,ref o);
                _Workbook xls = app.Workbooks.Open(filepath, o, true, o, o, o, o, o, o, o, o, o, o, o, o);                 object fileName = saveFileName;                 object format = Microsoft.Office.Interop.Excel.XlFileFormat.xlHtml;//Html

                // xls.SaveAs(ref fileName,ref format,ref o,ref o,ref o,ref o,ref o,ref o,ref o,ref o,ref o,ref o);                 xls.SaveAs(fileName, format, o, o, o, o, XlSaveAsAccessMode.xlExclusive, o, o, o, o, o);                 app.Quit();

                return fpath + filename.Replace(":", "-");             }             catch (Exception ex)             {                 return ex.ToString();             }             //finally             //{             //    Process[] myProcesses = Process.GetProcessesByName("EXCEL");             //    foreach (Process myProcess in myProcesses)             //    {             //        myProcess.Kill();             //    }             //}

                        }            }            
    }

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值