• [分享]一段导出到word模版的代码


    using System;
    using System.Web.UI;
    using System.Web.UI.HtmlControls;
    using System.Data;
    using Microsoft.Office.Interop.Word;

    namespace response
    {
     /// <summary>
     /// ToWordDoc 的摘要说明。
     /// </summary>
     public class ToWordDoc
     {
      private ApplicationClass oWordApplic; // a reference to Word application
      private Document oDoc; // a reference to the document
      public ToWordDoc()
      {
       //
       // TODO: 在此处添加构造函数逻辑
       //
       // activate the interface with the COM object of Microsoft Word
       oWordApplic = new ApplicationClass();
      }

      // Open a file (the file must exists) and activate it
      public void Open(string strFileName)
      {
       object fileName = strFileName;
       object readOnly = false;
       object isVisible = true;
       object missing = System.Reflection.Missing.Value;

       oDoc = oWordApplic.Documents.Open(ref fileName, ref missing,ref readOnly,
        ref missing, ref missing, ref missing, ref missing, ref missing, ref missing,
        ref missing, ref missing, ref isVisible,ref missing,ref missing,ref missing,ref missing);

       oDoc.Activate();
      }  


      // Open a new document
      public void Open( )
      {
       object missing = System.Reflection.Missing.Value;
       oDoc = oWordApplic.Application.Documents.Add(ref missing, ref missing,ref missing, ref missing);

       oDoc.Activate();   
      }  


      public void Quit( )
      {
    //   object missing = System.Reflection.Missing.Value;
    //   oWordApplic.Application.Quit(ref missing, ref missing, ref missing); 
       
       object missing = System.Reflection.Missing.Value;
       oDoc.Close(ref missing, ref missing, ref missing);
       oWordApplic.Quit(ref missing, ref missing, ref missing);

       System.Runtime.InteropServices.Marshal.ReleaseComObject(oDoc);
       System.Runtime.InteropServices.Marshal.ReleaseComObject(oWordApplic);

       oDoc = null;
       oWordApplic = null;
       GC.Collect();
     }  

      public void Save( )
      {
       oDoc.Save();   
      }  

      public void SaveAs(string strFileName)
      {
       object missing = System.Reflection.Missing.Value;
       object fileName = strFileName;
       //object Format = (int)WdSaveFormat.wdFormatFilteredHTML;
       oDoc.SaveAs(ref fileName, ref missing,ref missing, ref missing,ref missing,ref missing,ref missing,
        ref missing,ref missing,ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing);

      }  

      // Save the document in HTML format
      public void SaveAsHtml(string strFileName )
      {
       object missing = System.Reflection.Missing.Value;
       object fileName = strFileName;
       object Format = (int)WdSaveFormat.wdFormatHTML;
       oDoc.SaveAs(ref fileName, ref Format,ref missing, ref missing,ref missing,ref missing,ref missing,
        ref missing,ref missing,ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing);
      }  

      public void InsertText( string strText)
      {
       oWordApplic.Selection.TypeText(strText);
      }

      public string InsertHtml(string strText)
      {
       string noHtml = "";//System.Web.HttpUtility.HtmlDecode(strText);//
       noHtml =  strText.Replace("<p>","").Replace("<P>","").Replace("</P>","").Replace("</p>","");
       noHtml = noHtml.Replace("&nbsp;"," ").Replace("<br>","\n").Replace("<BR>","\n");

       return noHtml;
      }

      public void InsertLineBreak( )
      {
       oWordApplic.Selection.TypeParagraph();
      }
      public void InsertLineBreak( int nline)
      {
       for (int i=0; i<nline; i++)
        oWordApplic.Selection.TypeParagraph();
      }

      // Change the paragraph alignement
      public void SetAlignment(string strType )
      {
       switch (strType)
       {
        case "Center" :
         oWordApplic.Selection.ParagraphFormat.Alignment = WdParagraphAlignment.wdAlignParagraphCenter;
         break;
        case "Left" :
         oWordApplic.Selection.ParagraphFormat.Alignment = WdParagraphAlignment.wdAlignParagraphLeft;
         break;
        case "Right" :
         oWordApplic.Selection.ParagraphFormat.Alignment = WdParagraphAlignment.wdAlignParagraphRight;
         break;
        case "Justify" :
         oWordApplic.Selection.ParagraphFormat.Alignment = WdParagraphAlignment.wdAlignParagraphJustify;
         break;
       }
     
      }


      // if you use thif function to change the font you should call it again with
      // no parameter in order to set the font without a particular format
      public void SetFont( string strType )
      {
       switch (strType)
       {
        case "Bold":
         oWordApplic.Selection.Font.Bold = 1;
         break;
        case "Italic":
         oWordApplic.Selection.Font.Italic = 1;
         break;
        case "Underlined":
         oWordApplic.Selection.Font.Subscript = 0;
         break;
       }
       
      }


    //续上
    // disable all the style
      public void SetFont( )
      {
       oWordApplic.Selection.Font.Bold = 0;
       oWordApplic.Selection.Font.Italic = 0;
       oWordApplic.Selection.Font.Subscript = 0;
      
      }

      public void SetFontName( string strType )
      {
       oWordApplic.Selection.Font.Name = strType;
       
      }

      public void SetFontSize( int nSize )
      {
       oWordApplic.Selection.Font.Size = nSize;
       
      }

      public void InsertPagebreak()
      {
       // VB : Selection.InsertBreak Type:=wdPageBreak
       object pBreak= (int)WdBreakType.wdPageBreak;
       oWordApplic.Selection.InsertBreak(ref pBreak );
      }

      // Go to a predefined bookmark, if the bookmark doesn't exists the application will raise an error

      public void GotoBookMark( string strBookMarkName)
      {
       // VB :  Selection.GoTo What:=wdGoToBookmark, Name:="nome"
       object missing = System.Reflection.Missing.Value;

       object Bookmark = (int)WdGoToItem.wdGoToBookmark;
       object NameBookMark = strBookMarkName;
       oWordApplic.Selection.GoTo(ref Bookmark, ref missing, ref missing,ref NameBookMark);
      }

      public void GoToTheEnd( )
      {
       // VB :  Selection.EndKey Unit:=wdStory
       object missing = System.Reflection.Missing.Value;
       object unit ;
       unit = WdUnits.wdStory ;
       oWordApplic.Selection.EndKey ( ref unit, ref missing);
       
      }
      public void GoToTheBeginning( )
      {
       // VB : Selection.HomeKey Unit:=wdStory
       object missing = System.Reflection.Missing.Value;
       object unit ;
       unit = WdUnits.wdStory ;
       oWordApplic.Selection.HomeKey ( ref unit, ref missing);
       
      }

      public void GoToTheTable(int ntable )
      {
       // Selection.GoTo What:=wdGoToTable, Which:=wdGoToFirst, Count:=1, Name:=""
       //    Selection.Find.ClearFormatting
       //    With Selection.Find
       //        .Text = ""
       //        .Replacement.Text = ""
       //        .Forward = True
       //        .Wrap = wdFindContinue
       //        .Format = False
       //        .MatchCase = False
       //        .MatchWholeWord = False
       //        .MatchWildcards = False
       //        .MatchSoundsLike = False
       //        .MatchAllWordForms = False
       //    End With

       object missing = System.Reflection.Missing.Value;
       object what;
       what = WdUnits.wdTable ;
       object which;
       which = WdGoToDirection.wdGoToFirst;
       object count;
       count = 1 ;
       oWordApplic.Selection.GoTo( ref what, ref which, ref count, ref missing);
       oWordApplic.Selection.Find.ClearFormatting();

       oWordApplic.Selection.Text = "";
       
       
      }

      public void GoToRightCell( )
      {
       // Selection.MoveRight Unit:=wdCell
       
       object missing = System.Reflection.Missing.Value;
       object direction;
       direction = WdUnits.wdCell;
       oWordApplic.Selection.MoveRight(ref direction,ref missing,ref missing);
      }

      public void GoToLeftCell( )
      {
       // Selection.MoveRight Unit:=wdCell
       
       object missing = System.Reflection.Missing.Value;
       object direction;
       direction = WdUnits.wdCell;
       oWordApplic.Selection.MoveLeft(ref direction,ref missing,ref missing);
      }

      public void GoToDownCell( )
      {
       // Selection.MoveRight Unit:=wdCell
       
       object missing = System.Reflection.Missing.Value;
       object direction;
       direction = WdUnits.wdLine;
       oWordApplic.Selection.MoveDown(ref direction,ref missing,ref missing);
      }

      public void GoToUpCell( )
      {
       // Selection.MoveRight Unit:=wdCell
       
       object missing = System.Reflection.Missing.Value;
       object direction;
       direction = WdUnits.wdLine;
       oWordApplic.Selection.MoveUp(ref direction,ref missing,ref missing);
      }

     
      // this function doesn't work
      public void InsertPageNumber( string strType, bool bHeader )
      {
       object missing = System.Reflection.Missing.Value;
       object alignment ;
       object bFirstPage = false;
       object bF = true;
       //if (bHeader == true)
       //WordApplic.Selection.HeaderFooter.PageNumbers.ShowFirstPageNumber = bF;
       switch (strType)
       {
        case "Center":
         alignment = WdPageNumberAlignment.wdAlignPageNumberCenter;
         //WordApplic.Selection.HeaderFooter.PageNumbers.Add(ref alignment,ref bFirstPage);
         //Selection objSelection = WordApplic.pSelection;
         
         oWordApplic.Selection.HeaderFooter.PageNumbers[1].Alignment = WdPageNumberAlignment.wdAlignPageNumberCenter;
         break;
        case "Right":
         alignment = WdPageNumberAlignment.wdAlignPageNumberRight;
         oWordApplic.Selection.HeaderFooter.PageNumbers[1].Alignment = WdPageNumberAlignment.wdAlignPageNumberRight;
         break;
        case "Left":
         alignment = WdPageNumberAlignment.wdAlignPageNumberLeft;
         oWordApplic.Selection.HeaderFooter.PageNumbers.Add(ref alignment,ref bFirstPage);
         break;
       }
               
      }


     }
     //object units = WdUnits.wdCharacter;
     //object last=doc.Characters.Count;
     //doc.Range(ref first, ref last).Delete(ref units, ref last)

    }


  • 相关阅读:
    【转】[完结] 取结构偏移 和 取地址符号的 思考
    资料备忘 【攀枝花】 我的百度文库
    static_cast reinterprt_cast 区别
    c++ 四种转换 cast 列表小结 (等待补充)2012 3月
    对偏移表达式的 思考过程—how offset macro is think out
    【转】常见面试题思想方法整理 原来果然有双指针遍历
    [转]好的习惯 提高你开发效率的十五个Visual Studio 2010使用技巧
    多种方案 测试 有无符号数包括 不适用大小于符号判断符号数
    [转] 仅有USB线拷贝无SD卡小米照相文件方法 简言adb shell
    iframe 高度自动调节
  • 原文地址:https://www.cnblogs.com/goody9807/p/222526.html
Copyright © 2020-2023  润新知