asp.net word ecxel类型文件在线预览

首先得引用COM:

Microsoft Excel 10 Object Library

Microsoft Word 10 Object Library

或者是 10以上的类库

我现在用的是:资源下载: http://download.csdn.net/detail/panfuy/3247641 或者附件

Microsoft Excel 10 Object Library

Microsoft Word 10 Object Library

代码如下:

  1. using System;
  2. using System.Data;
  3. using System.Configuration;
  4. using System.Collections;
  5. using System.Web;
  6. using System.Web.Security;
  7. using System.Web.UI;
  8. using System.Web.UI.WebControls;
  9. using System.Web.UI.WebControls.WebParts;
  10. using System.Web.UI.HtmlControls;
  11. using System.IO;
  12. using System.Diagnostics;
  13. using Word = Microsoft.Office.Interop.Word;
  14. using Excel = Microsoft.Office.Interop.Excel;
  15. using System.Reflection;
  16. using Microsoft.Office.Interop.Excel;
  17. public partial class upload_preview : System.Web.UI.Page
  18. {
  19. protected void Page_Load(object sender, EventArgs e)
  20. {
  21. GenerationWordHTML("E://20110502.doc", "E://20110502.html");
  22. GenerationExcelHTML("E://20110502.xls", "E://20110502.html");
  23. }
  24. /// <summary>
  25. /// Ecxel文件生成HTML并保存
  26. /// </summary>
  27. /// <param name="FilePath">需要生成的ecxel文件的路径</param>
  28. /// <param name="saveFilePath">生成以后保存HTML文件的路径</param>
  29. /// <returns>是否生成成功,成功为true,反之为false</returns>
  30. protected bool GenerationExcelHTML(string FilePath, string saveFilePath)
  31. {
  32. try
  33. {
  34. Excel.Application app = new Excel.Application();
  35. app.Visible = false;
  36. Object o = Missing.Value;
  37. ///打开文件
  38. /*下面是Microsoft Excel 9 Object Library的写法: */
  39. /*_Workbook xls = app.Workbooks.Open(FilePath, o, o, o, o, o, o, o, o, o, o, o, o);*/
  40. /*下面是Microsoft Excel 10 Object Library的写法: */
  41. _Workbook xls = app.Workbooks.Open(FilePath, o, o, o, o, o, o, o, o, o, o, o, o, o, o);
  42. ///转换格式,另存为 HTML
  43. /*下面是Microsoft Excel 9 Object Library的写法: */
  44. /*xls.SaveAs(saveFilePath, Excel.XlFileFormat.xlHtml, o, o, o, o, XlSaveAsAccessMode.xlExclusive, o, o, o, o);*/
  45. /*下面是Microsoft Excel 10 Object Library的写法: */
  46. xls.SaveAs(saveFilePath, Excel.XlFileFormat.xlHtml, o, o, o, o, XlSaveAsAccessMode.xlExclusive, o, o, o, o, o);
  47. ///退出 Excel
  48. app.Quit();
  49. return true;
  50. }
  51. catch
  52. {
  53. return false;
  54. }
  55. finally
  56. {
  57. //最后关闭打开的excel 进程
  58. Process[] myProcesses = Process.GetProcessesByName("EXCEL");
  59. foreach (Process myProcess in myProcesses)
  60. {
  61. myProcess.Kill();
  62. }
  63. }
  64. }
  65. /// <summary>
  66. /// WinWord文件生成HTML并保存
  67. /// </summary>
  68. /// <param name="FilePath">需要生成的word文件的路径</param>
  69. /// <param name="saveFilePath">生成以后保存HTML文件的路径</param>
  70. /// <returns>是否生成成功,成功为true,反之为false</returns>
  71. private bool GenerationWordHTML(string FilePath, string saveFilePath)
  72. {
  73. try
  74. {
  75. Word.ApplicationClass word = new Word.ApplicationClass();
  76. Type wordType = word.GetType();
  77. Word.Documents docs = word.Documents;
  78. /// 打开文件
  79. Type docsType = docs.GetType();
  80. Word.Document doc = (Word.Document)docsType.InvokeMember("Open", System.Reflection.BindingFlags.InvokeMethod, null, docs, new Object[] { FilePath, true, true });
  81. /// 转换格式,另存为 HTML
  82. Type docType = doc.GetType();
  83. /*下面是Microsoft Word 9 Object Library的写法: */
  84. /*docType.InvokeMember("SaveAs", System.Reflection.BindingFlags.InvokeMethod, null, doc, new object[] { saveFilePath, Word.WdSaveFormat.wdFormatHTML });*/
  85. /*下面是Microsoft Word 10 Object Library的写法: */
  86. docType.InvokeMember("SaveAs", System.Reflection.BindingFlags.InvokeMethod,
  87. null, doc, new object[] { saveFilePath, Word.WdSaveFormat.wdFormatFilteredHTML });
  88. /// 退出 Word
  89. wordType.InvokeMember("Quit", System.Reflection.BindingFlags.InvokeMethod, null, word, null);
  90. return true;
  91. }
  92. catch
  93. {
  94. return false;
  95. }
  96. finally
  97. {
  98. //最后关闭打开的winword 进程
  99. Process[] myProcesses = Process.GetProcessesByName("WINWORD");
  100. foreach (Process myProcess in myProcesses)
  101. {
  102. myProcess.Kill();
  103. }
  104. }
  105. }
  106. }

asp.net word ecxel类型文件在线预览的更多相关文章

  1. 【ASP.NET 进阶】PDF文件在线预览(类似百度文库)

    工作需要完成文档的在线预览,现在完成了第一步PDF文件的预览,步骤是通过PDF转换工具pdf2swf.exe把PDF文件转换为SWF文件,然后通过FlexPaper就可以预览了.效果如下(GIF图片太 ...

  2. 文件在线预览doc,docx转换pdf(一)

    文件在线预览doc,docx转换pdf(一) 1. 前言 文档转换是一个是一块硬骨头,但是也是必不可少的,我们正好做的知识库产品中,也面临着同样的问题,文档转换,精准的全文搜索,知识的转换率,是知识库 ...

  3. 网页中动态嵌入PDF文件/在线预览PDF内容https://www.cnblogs.com/xgyy/p/6119459.html

    #网页中动态嵌入PDF文件/在线预览PDF内容# 摘要:在web开发时我们有时会需要在线预览PDF内容,在线嵌入pdf文件: 问题1:如何网页中嵌入PDF: 在网页中: 常用的几种PDF预览代码片段如 ...

  4. C# WebAPI 文件在线预览

    最近在写一个移动端API接口,其中有一个需求:接口返回附件url地址让手机端调用实现文件在线预览.大体实现思路:把doc.xls等文本格式文件转换为pdf,转换后的pdf文件存放在服务器上面,方便第二 ...

  5. kkfileview v2.0 发布,文件在线预览项目方案

    kkfileview文件在线预览 此项目为文件文档在线预览项目解决方案,项目使用流行的spring boot搭建,易上手和部署,部署好后可以独立提供预览服务,使用http接口访问,不需要和应用集成,具 ...

  6. 基于开源方案构建统一的文件在线预览与office协同编辑平台的架构与实现历程

    大家好,又见面了. 在构建业务系统的时候,经常会涉及到对附件的支持,继而又会引申出对附件在线预览.在线编辑.多人协同编辑等种种能力的诉求. 对于人力不是特别充裕.或者项目投入预期规划不是特别大的公司或 ...

  7. 使用PDF.JS实现pdf文件在线预览时,报文件被损坏的错误

    首先大概说明一下问题出现的背景:我用PDF.JS实现文件在线预览,参考网上的办法,在jsp文件中使用 <iframe src="<c:url value="js/gen ...

  8. Aspose office (Excel,Word,PPT),PDF 在线预览

    前文: 做个备份,拿的是试用版的 Aspose,功能见标题 代码: /// <summary> /// Aspose office (Excel,Word,PPT),PDF 在线预览 // ...

  9. office文件在线预览,模仿网易邮箱在线预览的

    最近研究了半天,代码是倾情奉送啊,C#,asp.net的 这个原理是office文件转换为PDF文件,然后再转换成SWF文件,FlexPaper+swfTools. 有个问题,需要在web.confi ...

随机推荐

  1. SynchronizationContext一篇

    SynchronizationContext context; 最近写代码用到了这个,特别记录一下. 作用如下: // 摘要: // 提供在各种同步模型中传播同步上下文的基本功能. public cl ...

  2. Python学习教程(learning Python)--3.3 分支语句的条件表达式详解

    本节主要讨论分支语句的条件表达式问题. 在if或者if-else分支控制语句里由于都用到条件判断(表达式是真还是假),条件判断可以是一种关系运算也可以是布尔表达式. 本节将对if及if-else语句的 ...

  3. Hashset,Iterator

    HashSet类主要是设计用来做高性能集运算的,例如对两个集合求交集.并集.差集等.集合中包含一组不重复出现且无特性顺序的元素. (一)HashSet的一些特性如下: 1.HashSet中的值不能重复 ...

  4. 使用 libevent 和 libev 提高网络应用性能——I/O模型演进变化史

    构建现代的服务器应用程序需要以某种方法同时接收数百.数千甚至数万个事件,无论它们是内部请求还是网络连接,都要有效地处理它们的操作. 有许多解决方案,但事件驱动也被广泛应用到网络编程中.并大规模部署在高 ...

  5. Outlook打不开? 进程一大堆!

    问题描述: ====== 关闭Outlook应用程序后,Outlook.exe进程仍在任务管理器里继续运行,不能关闭. 原因: ====== Outlook的插件或者扩展程序阻止Outlook关闭 解 ...

  6. RMAN - 备份异机恢复

    OS: Oracle Linux Server release 5.7 DB: Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - ...

  7. ASP.NET分页

    [代码][C#]代码 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 ...

  8. iOS学习之Object-C语言集合遍历和数组排序

    一.集合遍历      1.集合:OC中提供的容器类,数组,字典,集合.      2.遍历:对集合中元素依次取出的过程叫做遍历. 二.for循环遍历      1.通过for循环的循环变量用作数组元 ...

  9. iOS开发之构建Widget

    原文出处: 陈凯 在 jianshu 的博客(@chenkaiHome)   欢迎分享原创到伯乐头条 伴随这iOS 8 系统多达4000项API更新而来同样还有Today Extension.而对iO ...

  10. jquery方法回到顶部代码

    <style> /*默认样式,主要是position:fixed实现屏幕绝对定位*/ #gotoTop{display:none;position:fixed;top:75%;left:5 ...