asp.net实现word文档在线预览功能的方法

本文实例讲述了asp.net实现word文档在线预览功能的方法。分享给大家供大家参考。具体实现方法如下:

实现方式:office文档转html,再在浏览器里面在线浏览

1、首先引入com组件中office库,然后在程序集扩展中引入word的dll

2、将Microsoft.Office.Interop.Word的嵌入互操作类型设置为 false,如图

3、主要代码:

代码如下:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using Microsoft.Office.Core;
using Word = Microsoft.Office.Interop.Word;
namespace Wolfy.OfficePreview
{
    public class Office2HtmlHelper
    {
        /// <summary>
        /// Word转成Html
        /// </summary>
        /// <param name="path">要转换的文档的路径</param>
        /// <param name="savePath">转换成html的保存路径</param>
        /// <param name="wordFileName">转换成html的文件名字</param>
        public static void Word2Html(string path, string savePath, string wordFileName)
        {
            Word.ApplicationClass word = new Word.ApplicationClass();
            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[] { (object)path, true, true });
            Type docType = doc.GetType();
            string strSaveFileName = savePath + wordFileName + ".html";
            object saveFileName = (object)strSaveFileName;
            docType.InvokeMember("SaveAs", System.Reflection.BindingFlags.InvokeMethod, null, doc, new object[] { saveFileName, Word.WdSaveFormat.wdFormatFilteredHTML });
            docType.InvokeMember("Close", System.Reflection.BindingFlags.InvokeMethod, null, doc, null);
            wordType.InvokeMember("Quit", System.Reflection.BindingFlags.InvokeMethod, null, word, null);
        }
    }
}

调用:

代码如下:

Office2HtmlHelper.Word2Html(MapPath("/Doc/分析某网站的SEO策略(外链篇).doc"), MapPath("/Html/"), "分析某网站的SEO策略(外链篇)");

希望本文所述对大家的asp.net程序设计有所帮助。

(0)

相关推荐

  • asp.net下将页面内容导入到word模板中的方法

    1,新建word模版,方法是找需要用程序填充的word文档,在需要输入的地方用"书签"(插入-->书签-->输入id-->ok)标记后保存既可. 2,在word模版上修改安全添加everyone 可读,以防文件无法打开. 3,在工程里添加"引用"找到"Microsoft Word 10.0 Object Library"或"Microsoft Word 11.0 Object Library"点确定. 4,新

  • 从ASP.NET得到Microsoft Word文档的代码

    背景 自动化(Automation)是一个过程,它允许编程语言譬如Visual Basic.NET或C#写的应用程序可以编程控制其它应用程序.自动化到Word允许你执行像创建新文档,向文档中添加文本,邮件合并,还有控制文档格式这样的操作.使用Word和其它Microsoft Office应用程序,几乎所有你能在用户面板上手动实现的操作都可以通过自动化编程实现.Word通过一个对象模型来实现这个编程功能性(programmatically functionality).对象模型是一系列类和方法,它

  • ASP.NET实现将word文档转换成pdf的方法

    本文实例讲述了ASP.NET实现将word文档转换成pdf的方法,分享给大家供大家参考.具体实现步骤如下: 一.添加引用 复制代码 代码如下: using Microsoft.Office.Interop.Word; 二.转换方法   1.方法 复制代码 代码如下: /// <summary>     /// 把Word文件转换成pdf文件     /// </summary>     /// <param name="sourcePath">需要转

  • asp.net中Word转Html的办法(不需要WORD组件)

    基本思路:把Word文件上传到服务器,读取其内容存储为Html,然后加载Html内容 1:使用Microsoft.Office.Interop.Word组件     这是比较常用的一种方式,代码就不贴出了,网上大把的例子     缺点:服务器需要装Word的组件,并且需要在服务器上设置Docm+对象的权限,如果一台服务器还好,如果项目应用到多台不同服务器,就比较繁琐了2: OpenXml API      可以将.docx(word 97-2003 不适用)转化为XML,有了XML,想转成HTM

  • ASP.NET操作Word的IIS权限设置

    ASP.NET账号在默认情况下是没有权限操作Microsoft Office对象的,如果不进行权限的配置,代码会抛出类似以下的异常: 检索 COM 类工厂中 CLSID 为 {00024500-0000-0000-C000-000000000046} 的组件时失败,原因是出现以下错误: 80070005. 这样给Asp.NET操作Microsoft Office对象带来了一定的困难.但我们还是要想办法来进行Office对象的操作.下面简单介绍一下本人在开发过程中曾经使用过的方法: 方法1:配置W

  • asp.net下用Aspose.Words for .NET动态生成word文档中的图片或水印的方法

    1.概述 在项目中生成word文档,这个功能很普遍的,一般生成都是纯文字或是列表的比较多,便于客户打印,而要把图片也生成到word文档中的需求有些客户也是需要的,例如产品图片.这次我们介绍的是如何利用Aspose.Words for .NET在Word中动态的生成图片或水印.Aspose.Words for .NET,这个我就不多介绍了,不清楚的朋友可以看看上一篇文章.需求总是变化得快,最近项目中又多了一个这样需求:系统中生成报价单后,要有一个签名,这个签名是根据不同用户来生成的图片.好了,下面

  • asp.net(c#)下读取word文档的方法小结

    第一种方法: 复制代码 代码如下: Response.ClearContent(); Response.ClearHeaders(); Response.ContentType = "Application/msword"; string s=Server.MapPath("C#语言参考.doc"); Response.WriteFile("C#语言参考.doc"); Response.Write(s); Response.Flush(); Re

  • asp.net下用Aspose.Words for .NET动态生成word文档中的数据表格的方法

    1.概述 最近项目中有一个这样的需求:导出word 文档,要求这个文档的格式不是固定的,用户可以随便的调整,导出内容中的数据表格列是动态的,例如要求导出姓名和性别,你就要导出这两列的数据,而且这个文档不是导出来之后再调整而是导出来后已经是调整过了的.看到这里,您也许马上想到用模板导出!而且.NET中自带有这个组件:Microsoft.Office.Interop.Word,暂且可以满足需求吧.但这个组件也是有局限性的,例如客户端必须装 office组件,而且编码复杂度高.最麻烦的需求是后面那个-

  • asp.net操作Word实现批量替换

    首先引入Microsoft.Office.Interop.Word组件,该组件在安装完office后在COM中出现. 代码如下 using System; using System.Collections.Generic; using System.Diagnostics; using System.Linq; using System.Text; namespace TextReplace { public class WordOperate : IDisposable { private M

  • asp.net 按指定模板导出word,pdf实例代码

    复制代码 代码如下: /// <summary>        /// 导出word文件        /// </summary>        /// <param name="templateFile">模板路径</param>        /// <param name="fileNameWord">导出文件名称</param>        /// <param name=&q

  • asp.net 在线编辑word文档 可保存到服务器

    注意:你要打开的服务器端的word文档要有写权限.iis要开起 web服务扩展中的webdav为允许 具体参考文档msdn:http://msdn2.microsoft.com/en-us/library/ms454230.aspx 原理:通过 javascript 创建一个ActiveX控件实例(为浏览者机器Program Files\Microsoft Office\OFFICE11\owssupp.dll或Program Files\Microsoft Office\OFFICE10\ow

  • ASP.NET实现word文档在线预览功能代码

    于是考虑在每个文件上传时为其生存一份HTMl文件,这样就能实现在线预览功能.主要代码如下 复制代码 代码如下: using System; using System.Collections; using System.Configuration; using System.Data; using System.Web; using System.Web.Security; using System.Web.UI; using System.Web.UI.HtmlControls; using S

  • asp.net中如何批量导出access某表内容到word文档

    下面通过图文并茂的方式给大家介绍asp.net中批量导出access某表内容到word文档的方法,具体详情如下: 一.需求: 需要将表中每一条记录中的某些内容导出在一个word文档中,并将这些文档保存在指定文件夹目录下 二.界面,简单设计如下: 三.添加office相关引用 添加后可在解决方案资源管理器中看到: 四.添加form1中的引用 using System.Data.OleDb; using System.Data.SqlClient; using System.IO; using Mi

随机推荐