用C#把Word文档转换成HTML
目前做的OA项目中有一个信息处理的模块,其中要将Word文档转换成HTML.
利用Microsoft Word 10.0 Object Library可以在页面中对Word文档进行格式转换。有关Word对象的一些方法可以参考Open和Save。
在开始之前首先要在解决方案资源管理器”引用”文件夹上单击鼠标右键添加引用:
Microsoft Word 10.0 Object Library
下面是进行转换的源代码[C#]:
using System;
using System.Drawing;
using System.Collections;
using System.ComponentModel;
using System.Windows.Forms;
using System.Data;
namespace WordToHtml
{
///
/// WordToHtml 的摘要说明。
///
public class Form1 : System.Windows.Forms.Form
{
private System.Windows.Forms.Button btnWordToHtml;
///
/// 必需的设计器变量。
///
private System.ComponentModel.Container components = null;
public Form1()
{
//
// Windows 窗体设计器支持所必需的
//
InitializeComponent();
//
// TODO: 在 InitializeComponent 调用后添加任何构造函数代码
//
}
///
/// 清理所有正在使用的资源。
///
protected override void Dispose( bool disposing )
{
if( disposing )
{
if (components != null)
{
components.Dispose();
}
}
base.Dispose( disposing );
}
#region Windows 窗体设计器生成的代码
///
/// 设计器支持所需的方法 - 不要使用代码编辑器修改
/// 此方法的内容。
///
private void InitializeComponent()
{
this.btnWordToHtml = new System.Windows.Forms.Button();
this.SuspendLayout();
//
// btnWordToHtml
//
this.btnWordToHtml.Location = new System.Drawing.Point(144, 104);
this.btnWordToHtml.Name = "btnWordToHtml";
this.btnWordToHtml.TabIndex = 0;
this.btnWordToHtml.Text = "WordToHtml";
this.btnWordToHtml.Click += new System.EventHandler(this.btnWordToHtml_Click);
//
// Form1
//
this.AutoScaleBaseSize = new System.Drawing.Size(6, 14);
this.ClientSize = new System.Drawing.Size(344, 294);
this.Controls.Add(this.btnWordToHtml);
this.Name = "Form1";
this.Text = "Form1";
this.ResumeLayout(false);
}
#endregion
///
/// 应用程序的主入口点。
///
[STAThread]
static void Main()
{
Application.Run(new Form1());
}
private void btnWordToHtml_Click(object sender, System.EventArgs e)
{
Word.ApplicationClass appClass = new Word.ApplicationClass();
Type wordType = appClass.GetType();
Word.Documents docs = appClass.Documents;
//打开文件
Type docsType = docs.GetType();
object fileName = "C://程序人生.doc";
Word.Document doc = (Word.Document)docsType.InvokeMember("Open",
System.Reflection.BindingFlags.InvokeMethod,null,docs,new Object[]{fileName,true,true});
// 转换格式,另存为
Type docType = doc.GetType();
object saveFileName = "C://程序人生.html";
docType.InvokeMember("SaveAs",System.Reflection.BindingFlags.InvokeMethod,null,
doc,new object[]{saveFileName,Word.WdSaveFormat.wdFormatFilteredHTML});
//如果是Microsoft Word 9.0 Object Library的写法,可能写成:
//docType.InvokeMember("SaveAs", System.Reflection.BindingFlags.InvokeMethod, null,
//doc, new object[]{saveFileName, Word.WdSaveFormat.wdFormatHTML});
// 退出 Word
wordType.InvokeMember("Quit", System.Reflection.BindingFlags.InvokeMethod, null, appClass, null);
}
}
}