当前位置: 首页 > 图文教程 > 网络编程 > ASP.NET > 也说C#实现对Word文件读写

ASP.NET
DataList绑定到Row[]行集合的问题的方法
充分利用ASP.NET的三种缓存提高站点性能的注意方法
asp.net下文件上传和文件删除的代码
asp.net下日期加减的方法
asp.net动态载入用户控件的方法
asp.net下定制日期输出格式的代码
C#正则用法两例
asp.net图片上传生成缩略图的注意事项
ASP.NET中高质量缩略图的生成代码
DataList 中动态绑定服务器子控件的代码
asp.net下URL网址重写成.html格式、RSS、OPML的知识总结
使用UserControl做网站导航条的思路 分析
ASP.NET中使用AspnetAccessProvider
asp.net下实现URL重写技术的代码
为大家经常为md5加密过的常用admin,admin888,0000密码
利用MS AJAX注册Javascript命名空间并创建类
asp.net(c#)中取得文件物理路径
垃圾代码二三行 ASPX小马
.NET 2.0获取配置文件AppSettings和ConnectionStrings节数据的方法
.NET c# 单体模式(Singleton)

ASP.NET 中的 也说C#实现对Word文件读写


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-11-03   浏览: 182 ::
收藏到网摘: n/a

  手头上的一个项目报表相对比较简单,所以报表打印采用VBA引擎,通过定制Word模版,然后根据模版需要填充数据,然后OK,打印即可。

实现方法:首先需要引用VBA组建,我用的是Office2003 Professional,Dll版本号为Microsoft Word11.0,

另外当然还需要引用Interop.Word.Dll.

代码如下:

#region 打开Word文档,并且返回对象wDoc,wDoc
  ///


  /// 打开Word文档,并且返回对象wDoc,wDoc
  ///

  /// 完整Word文件路径+名称  
  /// 返回的Word.Document wDoc对象
  /// 返回的Word.Application对象
  public static void CreateWordDocument(string FileName,ref Word.Document wDoc,ref  Word.Application WApp)
  {
   if(FileName == "") return;
   Word.Document thisDocument = null;
   Word.FormFields   formFields = null;
   Word.Application thisApplication = new Word.ApplicationClass();
   thisApplication.Visible = true;
   thisApplication.Caption = "";
   thisApplication.Options.CheckSpellingAsYouType = false;
   thisApplication.Options.CheckGrammarAsYouType = false;

   Object filename = FileName;
   Object ConfirmConversions = false;
   Object ReadOnly = true;
   Object AddToRecentFiles = false;

   Object PasswordDocument = System.Type.Missing;
   Object PasswordTemplate = System.Type.Missing;
   Object Revert = System.Type.Missing;
   Object WritePasswordDocument = System.Type.Missing;
   Object WritePasswordTemplate = System.Type.Missing;
   Object Format = System.Type.Missing;
   Object Encoding = System.Type.Missing;
   Object Visible = System.Type.Missing;
   Object OpenAndRepair = System.Type.Missing;
   Object DocumentDirection =  System.Type.Missing;
   Object NoEncodingDialog = System.Type.Missing;
   Object XMLTransform = System.Type.Missing;

   try
   {
    Word.Document wordDoc =
     thisApplication.Documents.Open(ref filename, ref ConfirmConversions,
     ref ReadOnly, ref AddToRecentFiles, ref PasswordDocument, ref PasswordTemplate,
     ref Revert,ref WritePasswordDocument, ref WritePasswordTemplate, ref Format,
     ref Encoding, ref Visible, ref OpenAndRepair, ref DocumentDirection,
     ref NoEncodingDialog, ref XMLTransform );
    
    thisDocument = wordDoc;
    wDoc = wordDoc;
    WApp = thisApplication;
    formFields = wordDoc.FormFields;
   }
   catch(Exception ex)
   {
    MessageBox.Show(ex.Message);
   }
   
  }
  #endregion

调用上面静态方法,打开目标文件并且把DataGrid中数据填充到对应Word标签中去

#region Word填充数据(For Example)
  ///


  /// Word填充数据
  ///

  private void WordLoadData()
  {
   Word.Document wDoc=null;
   Word.Application wApp=null;
   sysFun.CreateWordDocument("E:\\监测报告(new).dot",ref wDoc,ref wApp);