`

Asp.net中Word文件转换成HTML

 
阅读更多
复制代码
//存放word文件的完整路径
stringwordPath=Server.MapPath("/word/test.doc");
//存放html文件的完整路径
stringhtmlPath=Server.MapPath("/html/test.html");

//上传word文件,由于只是做示例,在这里不多做文件类型、大小、格式以及是否存在的判断
FileUpload1.SaveAs(wordPath);

#region文件格式转换
//请引用Microsoft.Office.Interop.Word
ApplicationClassword=newApplicationClass();
TypewordType
=word.GetType();
Documentsdocs
=word.Documents;

//打开文件
TypedocsType=docs.GetType();
objectfileName=wordPath;//"f:\\cc.doc";
Documentdoc=(Document)docsType.InvokeMember("Open",BindingFlags.InvokeMethod,null,(object)docs,newObject[]{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的“另存为”方法
TypedocType=doc.GetType();
objectsaveFileName=htmlPath;//"f:\\aaa.html";
docType.InvokeMember("SaveAs",BindingFlags.InvokeMethod,null,doc,newobject[]{saveFileName,WdSaveFormat.wdFormatHTML});

//退出Word
wordType.InvokeMember("Quit",BindingFlags.InvokeMethod,null,word,null);

#endregion
复制代码

以上代码,在.net framework4.0中,可能会出一编译错误:

无法嵌入互操作类型“……”,请改用适用的接口

查阅资料,找到解决方案,记录如下:

选中项目中引入word的dll,鼠标右键,选择属性,把“嵌入互操作类型”设置为False。

下载源码:/Files/linyechengwei/WordToHTML.rar

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics