一直在想基于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&mailbox=INBOX&passed_id=4010&file_id=&absolute_dl=true&&right_click=1';return true;" onclick="this.href='download.php?ent_id=2&mailbox=INBOX&passed_id=4010&file_id=&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(); // } //}
} }
}