前两天在园子里看到了BlackSoul 写的《asp.net将word转换为html保存 》的文章,觉得很实用,但是搭建项目时候缺不是那么回事儿,中间有很多问题,比如说word组建的引用、web.config权限的设置,看到了很多人在网上也在问这个问题,我把问题一一解决,测试成功,现在把全部项目源码文件分享给大家下载。
项目截图:
 
   功能概述及注意事项:
该源码主要是通过Asp.net2.0实现Word文档上传并自动转换为Html文件,原理是将word文档上传至服务器然后再转存为html格式文件,再解析html文件修改其页面样式和css。

wordTmp为上传是word暂存文件夹
html为转换后html保存文件夹

注意:请设置web.config中的<identity impersonate="true" userName="administrator" password="51aspx"/>帐号和密码,否则会提示检索 COM 类工厂中 CLSID 为 {000209FF-0000-0000-C000-000000000046} 的组件时失败,原因是出现以下错误: 80070005。

该用户类型为拥有user权限的用户即可

示例Word文件是些笑话,希望能博得大家多多笑容!

部分CS源码:

  1    public partial class _Default : System.Web.UI.Page
  2    {
  3      //  public WordToHTML() { }
  4
  5        上传文件并转换为html wordToHtml(wordFilePath)#region 上传文件并转换为html wordToHtml(wordFilePath)
  6        /**//// 
  7        /// 上传文件并转存为html
  8        /// 
  9        /// word文档在客户机的位置
 10        /// 上传的html文件的地址
 11        public string wordToHtml(System.Web.UI.HtmlControls.HtmlInputFile wordFilePath)
 12        {
 13            Microsoft.Office.Interop.Word.ApplicationClass word = new Microsoft.Office.Interop.Word.ApplicationClass();
 14            Type wordType = word.GetType();
 15            Microsoft.Office.Interop.Word.Documents docs = word.Documents;
 16
 17            // 打开文件
 18            Type docsType = docs.GetType();
 19
 20            //应当先把文件上传至服务器然后再解析文件为html
 21            string filePath = uploadWord(wordFilePath);
 22
 23            //判断是否上传文件成功
 24            if (filePath == "0")
 25                return "0";
 26            //判断是否为word文件
 27            if (filePath == "1")
 28                return "1";
 29
 30            object fileName = filePath;
 31
 32            Microsoft.Office.Interop.Word.Document doc = (Microsoft.Office.Interop.Word.Document)docsType.InvokeMember("Open",
 33            System.Reflection.BindingFlags.InvokeMethod, null, docs, new Object[] { fileName, true, true });
 34
 35            // 转换格式,另存为html
 36            Type docType = doc.GetType();
 37
 38            string filename = System.DateTime.Now.Year.ToString() + System.DateTime.Now.Month.ToString() + System.DateTime.Now.Day.ToString() +
 39            System.DateTime.Now.Hour.ToString() + System.DateTime.Now.Minute.ToString() + System.DateTime.Now.Second.ToString();
 40
 41            //被转换的html文档保存的位置
 42            string ConfigPath = HttpContext.Current.Server.MapPath("html/" + filename + ".html");
 43            object saveFileName = ConfigPath;
 44
 45            /**//*下面是Microsoft Word 9 Object Library的写法,如果是10,可能写成:
 46            * docType.InvokeMember("SaveAs", System.Reflection.BindingFlags.InvokeMethod,
 47            * null, doc, new object[]{saveFileName, Word.WdSaveFormat.wdFormatFilteredHTML});
 48            * 其它格式:
 49            * wdFormatHTML
 50            * wdFormatDocument
 51            * wdFormatDOSText
 52            * wdFormatDOSTextLineBreaks
 53            * wdFormatEncodedText
 54            * wdFormatRTF
 55            * wdFormatTemplate
 56            * wdFormatText
 57            * wdFormatTextLineBreaks
 58            * wdFormatUnicodeText
 59            */
 60            docType.InvokeMember("SaveAs", System.Reflection.BindingFlags.InvokeMethod,
 61            null, doc, new object[] { saveFileName, Microsoft.Office.Interop.Word.WdSaveFormat.wdFormatFilteredHTML });
 62
 63            // 退出 Word
 64            wordType.InvokeMember("Quit", System.Reflection.BindingFlags.InvokeMethod, null, word, null);
 65            //转到新生成的页面
 66            return ("/" + filename + ".html");
 67        }
 68        #endregion
 69
 70        public string uploadWord(System.Web.UI.HtmlControls.HtmlInputFile uploadFiles)
 71        {
 72            if (uploadFiles.PostedFile != null)
 73            {
 74                string fileName = uploadFiles.PostedFile.FileName;
 75                int extendNameIndex = fileName.LastIndexOf(".");
 76                string extendName = fileName.Substring(extendNameIndex);
 77                string newName = "";
 78                try
 79                {
 80                    //验证是否为word格式
 81                    if (extendName == ".doc")
 82                    {
 83
 84                        DateTime now = DateTime.Now;
 85                        newName = now.DayOfYear.ToString() + uploadFiles.PostedFile.ContentLength.ToString();
 86                        //上传路径 指当前上传页面的同一级的目录下面的wordTmp路径
 87                        uploadFiles.PostedFile.SaveAs(System.Web.HttpContext.Current.Server.MapPath("wordTmp/" + newName + extendName));
 88                    }
 89                    else
 90                    {
 91                        return "1";
 92                    }
 93                }
 94                catch
 95                {
 96                    return "0";
 97                }
 98                //return "http://" + HttpContext.Current.Request.Url.Host + HttpContext.Current.Request.ApplicationPath + "/wordTmp/" + newName + extendName;
 99                return System.Web.HttpContext.Current.Server.MapPath("wordTmp/" + newName + extendName);
100            }
101
102            else
103            {
104                return "0";
105            }
106        }
107
108        protected void btnUpload_Click(object sender, EventArgs e)
109        {
110            try
111            {
112                //上传
113                uploadWord(File1);
114                //转换
115                wordToHtml(File1);
116            }
117            catch (Exception ex)
118            {
119                throw ex;
120            }
121            finally
122            {
123                Response.Write("恭喜,转换成功!");
124            }
125        }
126
127

word文件中前几个笑话:

1、 碗掉下来,天大个疤

2、一次文艺晚会,主持人上台报幕:下面请欣赏:新疆歌舞,掀起你的头盖骨!

毛骨悚然!!!!!

3、老虎不发猫,你当我是病危呀!

4、上高中时,课堂纪律混乱,老师一怒之下揪起XXX,说:XXX,你给我站墙上去!

~~全班暴寒!

5、一次我开车,坐我旁边的女同事突然问:“你怎么开车不系安全套的?”

6、我:那是我们物理老师。。。

还有30多个都在word文档中

完整项目源码下载

Asp.net2.0实现Word转换Html,同时分享系列笑话相关推荐

  1. ASP.NET2.0图片格式转换【月儿原创】

    ASP.NET2.0图片格式转换 作者:清清月儿 主页:http://blog.csdn.net/21aspnet/           时间:2007.4.20 说明:本文实现了 图片格式随意转换( ...

  2. ASP.NET2.0导出Word文档(C#导出DOC)

    在网络上看到很多关于ASP.NET导出DOC文档的例子,有的干脆就直接将html页面不做任何处理直接导出为DOC文件,但是那样会有很多错误,例如将某些控件显示为图片.我还曾经见过微软为中国某个大公司制 ...

  3. [转]ASP.NET1.0升级ASP.NET2.0问题总结

    来自:http://www.enet.com.cn/article/2006/0310/A20060310510518.shtml 1.Global.asax文件的处理形式不一样,转化后将出现错误 在 ...

  4. ASP.NET2.0国际化/本地化应用程序的实现总结(多语言,多文化页面的实现)

    相关文章导航 Sql Server2005 Transact-SQL 新兵器学习总结之-总结 Flex,Fms3相关文章索引 FlexAir开源版-全球免费多人视频聊天室,免费网络远程多人视频会议系统 ...

  5. DotNetTextBox V2.0 Web Control(ASP.NET2.0 增强型TextBox控件,完全支持AJAX.NET)

    [控件界面] [控件介绍] 名称:DotNetTextBox V2.0 Web Control 免费无限制版 类型:ASP.NET2.0 增强型TextBox控件 作者: 小宝.NET2.0 主页:h ...

  6. ASP.NET2.0里的web.config配置接口API(转)

    ASP.NET2.0里的配置接口API ASP.NET2.0里的配置API接口函数允许我们读/写配置文件----包括对web.config和machine.config的读写.您可以读写您自己应用程序 ...

  7. asp.net2.0导出pdf文件完美解决方案【月儿原创】

    asp.net2.0导出pdf文件完美解决方案 作者:清清月儿 主页:http://blog.csdn.net/21aspnet/           时间:2007.5.28 PDF简介:PDF(P ...

  8. asp.net2.0学习历程 菜鸟到中级程序员的飞跃【月儿原创】

    asp.net2.0学习历程 菜鸟到中级程序员的飞跃 --30本好书点评 作者:清清月儿 主页:http://blog.csdn.net/21aspnet/           时间:2007.5.1 ...

  9. ASP.NET2.0 文本编辑器FCKeditor的冰冷之心 【月儿原创】

    ASP.NET2.0 文本编辑器FCKeditor的冰冷之心 作者:清清月儿 主页:http://blog.csdn.net/21aspnet/           时间:2007.4.9 FCKed ...

最新文章

  1. Neutron 网络基本概念
  2. NTU课程笔记 MAS714(2) Big-O notations
  3. 利用扩展事件进行调优和Troubleshooting PPT分享
  4. docker(podman)命令参考
  5. ARCore快速入门--简介
  6. 我写了款依赖检查的插件
  7. SQL语法基础之updata
  8. vue中怎么实现吸顶效果
  9. git 撤回 (git版本回退处理)
  10. 情理之中 - Macs do Windows
  11. 程序员学炒股(7) 股市心得
  12. 从物联网架构分析物联网安全风险
  13. CSS背景图片定位(background-position,css sprit,背景定位,background-imag
  14. 调用百度地图出现的自动创建完成对象会清空输入框值的问题
  15. 【毕业设计_课程设计】基于Django和vue的微博用户情感分析系统
  16. 【算法】_013_矩阵乘法
  17. 在Win10以及SDK为33的环境下——小米便签项目的搭建
  18. 实现移动端touch事件的横向滑动列表效果
  19. 从青铜到王者,带你完成Redis分布式锁的实现和优化
  20. Intellij IDEA 关于jsp中css样式的效果不能显示问题

热门文章

  1. FlexPaper 2.2.1介绍与提取嵌入的文档
  2. 在Eclipse中如何让struts.xml显示提示
  3. 怎么查看SQL SERVER 2000是否打过SP4的补丁
  4. HDU 2574 HDOJ 2574 Hdu Girls' Day ACM 2574 IN HDU
  5. 04/28/2010 类,对象,变量
  6. C# GC 垃圾回收机制原理
  7. TCP同步和异步连接_学习笔记
  8. MFC多线程各种线程用法 .
  9. C#XmlDocument无法读取utf-16文件
  10. android数据回传多个页面_Android Day06四大组件之Activity多页面跳转和数据传递