asp.net 实现在线浏览word文档(word转html)

最近在做word文档在线浏览,找了种种方法、控件之后,回归到word转HTML,在线浏览....

一下是后台代码,前台html页面默认代码即可。

因为用文件如下:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.IO;
using Word = Microsoft.Office.Interop.Word;
using Word = Microsoft.Office.Interop.Word;

没有引用好组件时,此处会报错,找不到Interop之类的,

这时需要在引用里面引用组件.net下的Microsoft.Office.Interop.Visio,Microsoft.Office.Interop.Word

后台代码如下:

  protected void Page_Load(object sender, EventArgs e)
        {
            string relativePath = Request.QueryString["FilePath"]; //相对路径 ,从跳转页面得到文件相对路径。
            if (relativePath == "" || relativePath==null) return;
            string serverPath = Server.MapPath(relativePath);  //相对转服务器对应路径
            string html = serverPath.Replace(".doc", ".html");

            if (!File.Exists(@html)) //html页面不存在,把word转换成html
            {
                string filename = WordToHtml(serverPath);
                StreamReader fread = new StreamReader(filename, System.Text.Encoding.GetEncoding("gb2312"));
                string ss = fread.ReadToEnd();
                Response.Write(ss); //直接写字符串到网页会发现,文字可显示,图片、表格无法显示。因此在后面重跳转到html文件页面。
                fread.Close();
                fread.Dispose();
            }

            html = relativePath.Replace(".doc", ".html");
                               //html文件也存储在同样的路径下,
                              //只需要改了原路径的后缀即可得到html文件路径
            Response.Redirect(html);
            return;
        }

         /// <summary>
        /// word转成html
        /// </summary>
        /// <param name="wordFileName"></param>
        private string WordToHtml(object wordFileName)
        {
            //在此处放置用户代码以初始化页面
            Word.Application word = new Word.Application();
            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[] { wordFileName, true, true });
            //转换格式,另存为
            Type docType = doc.GetType();
            string wordSaveFileName = wordFileName.ToString();
            string strSaveFileName = wordSaveFileName.Substring(0, wordSaveFileName.Length - 3) + "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);
            //退出 Word
            wordType.InvokeMember("Quit", System.Reflection.BindingFlags.InvokeMethod, null, word, null);
            return saveFileName.ToString();
        }

时间: 2024-12-15 05:12:01

asp.net 实现在线浏览word文档(word转html)的相关文章

在网页中在线浏览ppt文档

方法一: 把ppt文件的扩展名直接修改为pps,嵌入到网页中 <iframe src="doc.pps" width="800" height="600" /> 缺点:这种方式浏览器会提示是打开,还是下载,选择打开的话会直接在浏览器中打开,并且客户端一定要安装Office PowerPoint才能打开 方法二: 把ppt文件在PowerPoint中另存为网页,保存类型为htm,可以直接在网页中打开 缺点:每一个ppt文档都需要在Pow

Asp.net操作Word文档,原来这么简单啊!

引用Word对象库文件  具体做法是打开菜单栏中的项目>添加引用>浏览,在打开的“选择组件”对话框中找到MSWORD.OLB后按确定即可引入此对象库文件,vs.net将会自动将库文件转化为DLL组件,这样我们只要在源码中创建该组件对象即可达到操作Word的目的! 如图 这会自动在你的应用程序文件夹中放置一个程序集(assembly)将COM接口邦定到Word. 上传并存储word文件 上传文件时首先通过上传控件找到所需上传的文件,然后获取文件的大小,最后以流的形式写入数据库 具体代码为 C#

.NET通过调用Office组件导出Word文档

.NET通过调用Office组件导出Word文档 最近做项目需要实现一个客户端下载word表格的功能,该功能是用户点击"下载表格",服务端将该用户的数据查询出来并生成数据到Word模板中,再反馈给客户端下载. 实现思路如下: 利用微软提供的Office的组件来完成,在服务器端指定目录放置一个word模板(该模板中需要替换的数据信息用书签标记好),当请求过来的时候,读取模板信息并将书签内容替换成从数据库获得的信息在返回给客户端下载即可,代码如下: #region 根据申请单ID号和模板生

asp.net如何实现word文档在线预览

原文:asp.net如何实现word文档在线预览 实现方式:office文档转html,再在浏览器里面在线浏览 1.首先引入com组件中office库,然后在程序集扩展中引入word的dll 2.将Microsoft.Office.Interop.Word的嵌入互操作类型设置为 false,如图 3.主要代码 C# 代码   复制 using System; using System.Collections.Generic; using System.Linq; using System.Web

php实现word文档在线浏览功能,配置安装手记

一般类似oa或者crm等管理系统可能都会遇到需要再线查看word文档的功能,类似百度文库. 记得去年小组中的一个成员负责的项目就需要这个的功能,后面说是实现比较困难,就将就着用chm格式替代了.今天看到网上一遍文章<LINUX下面PHP文件转换>,介绍怎么样在linux下使用Openoffice 3 , Pdf2Swf tool , Jodconverter , FlexPaper,实现文档在线查看. 自己再ubuntu下进行的尝试安装,步骤如下: 因为ubuntu版本为10.0.4,open

JSP实现word文档的上传,在线预览,下载

前两天帮同学实现在线预览word文档中的内容,而且需要提供可以下载的链接!在网上找了好久,都没有什么可行的方法,只得用最笨的方法来实现了.希望得到各位大神的指教.下面我就具体谈谈自己的实现过程,总结一下学习中的收获. 我相信很多程序员都遇到过,有些word文档希望直接在浏览器中打开进行预览,但是浏览器往往不是很配合,直接就提示下载,不像pdf文档,浏览器可以直接进行预览.Word文档甚至始终都会通过本地的Office软件打开.那么,问题来了,如何可以在线浏览word文档呢? 其实,我在最初的时候

asp.net页面读取word文档内容显示

用asp.net实现对指定word文档内容的读取显示该如何实现?比如左边读取指定文件夹中所有的word文档,以文档的标题作为链接,点击文档标题则在右边某位置显示出该word文档中的内容(包括字体样式,图片显示等). 可以这样实现: 操作WORD配置说明 引入:Word的对象库文件“MSWORD.OLB”(word 2000为MSWORD9.OLB) 1.运行Dcomcnfg.exe 2.组件服务――计算机――我的电脑――DCOM配置――找到microsoft word 文档 3.点击属性 4.选

ASP.Net控制不同的人编辑word文档中不同的可编辑区域

ASP.Net控制不同的人编辑word文档中不同的可编辑区域的完整示例 2010-10-15 11:43238人阅读评论(0)收藏举报 网页来源:http://blog.csdn.net/coco99/article/details/5942895 本文演示了如何使用C#在ASP.NET里调用Word限制用户只能编辑word文档中自己有权编辑的区域. 1.项目目的 演示使用不同的用户登录系统,打开同一个文件(不必同时打开),可以编辑的区域不一样,每个人都有属于自己的编辑区域. 2.解决思路 利用

word文档在线预览解决方案

花了一整天在网上翻关于 “word文档在线预览解决方案” 相关的资料,感觉实现难度比较大还是用PDF来解决好了.. 下面列一下比较好的参考资料吧 参考资料 前端实现在线预览pdf.word.xls.ppt等文件 OFFICE 文档转换为html在线预览 [Asp.net]常见word,excel,ppt,pdf在线预览方案,有图有真相,总有一款适合你! Office文件在线预览功能够折腾的了 Office在线预览及PDF在线预览的实现方式大集合 python3将docx转换成pdf,html文件