欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

Asp.net中将Word文件转换成HTML的方法

程序员文章站 2024-02-22 08:07:28
本文所述为一个asp.net实现将word转换为html的功能,其关键代码如下: //存放word文件的完整路径 string wordpath = serv...

本文所述为一个asp.net实现将word转换为html的功能,其关键代码如下:

//存放word文件的完整路径
 string wordpath = server.mappath("/word/test.doc");
 //存放html文件的完整路径
 string htmlpath = server.mappath("/html/test.html");
 //上传word文件, 由于只是做示例,在这里不多做文件类型、大小、格式以及是否存在的判断
 fileupload1.saveas(wordpath);
 #region 文件格式转换
 //请引用microsoft.office.interop.word
 applicationclass word = new applicationclass();
type wordtype = word.gettype();
documents docs = word.documents;

 //打开文件
 type docstype = docs.gettype();
 object filename = wordpath; 
 //"f:\\cc.doc";
 document doc =(document)docstype.invokemember("open", bindingflags.invokemethod, null, (object)docs, new object[] { filename, true, true});

 //判断与文件转换相关的文件是否存在,存在则删除。(这里,最好还判断一下存放文件的目录是否存在,不存在则创建)
 if(file.exists(htmlpath)) { file.delete(htmlpath); }
 //每一个html文件,有一个对应的存放html相关元素的文件夹(html文件名.files)
 if(directory.exists(htmlpath.replace(".html" ,".files")))  
 { 
  directory.delete(htmlpath.replace(".html", ".files"), true);
 };

 //转换格式,调用word的“另存为”方法
 type doctype =doc.gettype();
 object savefilename = htmlpath; 
 //"f:\\aaa.html";
 doctype.invokemember("saveas", bindingflags.invokemethod, null, doc, new object[] { savefilename, wdsaveformat.wdformathtml });
 //退出 word
 wordtype.invokemember("quit", bindingflags.invokemethod, null, word, null);
 #endregion

上述代码,在.net framework4.0 中,可能会出一编译错误,如下所示:
无法嵌入互操作类型“……”,请改用适用的接口

经过查阅资料,找到解决方案如下:
选中项目中引入word的dll,鼠标右键,选择属性,把“嵌入互操作类型”设置为false。

该实例完整代码点击此处本站下载