C#中对word的一些操作

一、添加页眉
using  System; 
using  System.Collections.Generic; 
using  System.ComponentModel; 
using  System.Data; 
using  System.Linq; 
using  System.Text; 
using  Word = Microsoft.Office.Interop.Word; 
using  System.IO; 
using  System.Reflection; 
using  Microsoft.Office.Interop.Word; 
namespace  WordCreateDLL 

   public   class  AddHeader  
    { 
        public   static   void  AddSimpleHeader(Application WordApp, string  HeaderText)  
        { 
            //添加页眉   
            WordApp.ActiveWindow.View.Type = WdViewType.wdOutlineView; 
            WordApp.ActiveWindow.View.SeekView = WdSeekView.wdSeekPrimaryHeader; 
            WordApp.ActiveWindow.ActivePane.Selection.InsertAfter(HeaderText); 
            WordApp.Selection.ParagraphFormat.Alignment = WdParagraphAlignment.wdAlignParagraphLeft;//设置左对齐   
            WordApp.ActiveWindow.View.SeekView = WdSeekView.wdSeekMainDocument; 
        } 
        public   static   void  AddSimpleHeader(Application WordApp,  string  HeaderText, WdParagraphAlignment wdAlign)  
        { 
            //添加页眉   
            WordApp.ActiveWindow.View.Type = WdViewType.wdOutlineView; 
            WordApp.ActiveWindow.View.SeekView = WdSeekView.wdSeekPrimaryHeader; 
            WordApp.ActiveWindow.ActivePane.Selection.InsertAfter(HeaderText); 
            //WordApp.Selection.Font.Color = WdColor.wdColorDarkRed;//设置字体颜色   
            WordApp.Selection.ParagraphFormat.Alignment = wdAlign;//设置左对齐   
            WordApp.ActiveWindow.View.SeekView = WdSeekView.wdSeekMainDocument; 
        } 
        public   static   void  AddSimpleHeader(Application WordApp,  string  HeaderText, WdParagraphAlignment wdAlign,WdColor fontcolor, float  fontsize)  
        { 
            //添加页眉   
            WordApp.ActiveWindow.View.Type = WdViewType.wdOutlineView; 
            WordApp.ActiveWindow.View.SeekView = WdSeekView.wdSeekPrimaryHeader; 
            WordApp.ActiveWindow.ActivePane.Selection.InsertAfter(HeaderText); 
            WordApp.Selection.Font.Color =fontcolor;//设置字体颜色   
            WordApp.Selection.Font.Size = fontsize;//设置字体大小   
            WordApp.Selection.ParagraphFormat.Alignment = wdAlign;//设置对齐方式   
            WordApp.ActiveWindow.View.SeekView = WdSeekView.wdSeekMainDocument; 
        } 
    } 
}

  
二、插入图片
using  System; 
using  System.Collections.Generic; 
using  System.ComponentModel; 
using  System.Data; 
using  System.Linq; 
using  System.Text; 
using  Word = Microsoft.Office.Interop.Word; 
using  System.IO; 
using  System.Reflection; 
using  Microsoft.Office.Interop.Word; 
namespace  WordCreateDLL 

  public   class  AddPic  
    { 
      public   static   void  AddSimplePic(Document WordDoc,  string  FName,  float  Width,  float  Height,  object  An, WdWrapType wdWrapType)  
      { 
          //插入图片   
          string  FileName = @FName; //图片所在路径   
          object  LinkToFile =  false ;  
          object  SaveWithDocument =  true ;  
          object  Anchor = An;  
          WordDoc.Application.ActiveDocument.InlineShapes.AddPicture(FileName, ref  LinkToFile,  ref  SaveWithDocument,  ref  Anchor);  
          WordDoc.Application.ActiveDocument.InlineShapes[1].Width = Width;//图片宽度   
          WordDoc.Application.ActiveDocument.InlineShapes[1].Height = Height;//图片高度   
          //将图片设置为四周环绕型   
          Microsoft.Office.Interop.Word.Shape s = WordDoc.Application.ActiveDocument.InlineShapes[1].ConvertToShape(); 
          s.WrapFormat.Type = wdWrapType; 
      } 
    } 
}  

 
三、插入表格
using  System; 
using  System.Collections.Generic; 
using  System.ComponentModel; 
using  System.Data; 
using  System.Linq; 
using  System.Text; 
using  Word = Microsoft.Office.Interop.Word; 
using  System.IO; 
using  System.Reflection; 
using  Microsoft.Office.Interop.Word; 
 
namespace  WordCreateDLL 

   public   class  AddTable  
    { 
       public   static   void  AddSimpleTable(Application WordApp, Document WordDoc,  int  numrows,  int  numcolumns, WdLineStyle outStyle, WdLineStyle intStyle)  
       { 
           Object Nothing = System.Reflection.Missing.Value; 
           //文档中创建表格   
           Microsoft.Office.Interop.Word.Table newTable = WordDoc.Tables.Add(WordApp.Selection.Range, numrows, numcolumns, ref  Nothing,  ref  Nothing);  
           //设置表格样式   
           newTable.Borders.OutsideLineStyle = outStyle; 
           newTable.Borders.InsideLineStyle = intStyle; 
           newTable.Columns[1].Width = 100f; 
           newTable.Columns[2].Width = 220f; 
           newTable.Columns[3].Width = 105f; 
 
           //填充表格内容   
           newTable.Cell(1, 1).Range.Text = "产品详细信息表" ;  
           newTable.Cell(1, 1).Range.Bold = 2;//设置单元格中字体为粗体   
           //合并单元格   
           newTable.Cell(1, 1).Merge(newTable.Cell(1, 3)); 
           WordApp.Selection.Cells.VerticalAlignment =WdCellVerticalAlignment.wdCellAlignVerticalCenter;//垂直居中   
           WordApp.Selection.ParagraphFormat.Alignment = WdParagraphAlignment.wdAlignParagraphCenter;//水平居中   
 
           //填充表格内容   
           newTable.Cell(2, 1).Range.Text = "产品基本信息" ;  
           newTable.Cell(2, 1).Range.Font.Color =WdColor.wdColorDarkBlue;//设置单元格内字体颜色   
           //合并单元格   
           newTable.Cell(2, 1).Merge(newTable.Cell(2, 3)); 
           WordApp.Selection.Cells.VerticalAlignment =WdCellVerticalAlignment.wdCellAlignVerticalCenter; 
 
           //填充表格内容   
           newTable.Cell(3, 1).Range.Text = "品牌名称:" ;  
           newTable.Cell(3, 2).Range.Text = "品牌名称:" ;  
           //纵向合并单元格   
           newTable.Cell(3, 3).Select();//选中一行   
           object  moveUnit = WdUnits.wdLine;  
           object  moveCount = 5;  
           object  moveExtend = WdMovementType.wdExtend;  
           WordApp.Selection.MoveDown(ref  moveUnit,  ref  moveCount,  ref  moveExtend);  
           WordApp.Selection.Cells.Merge(); 
 
           //插入图片   
           string  FileName = @ "C:/1.jpg" ; //图片所在路径   
           object  Anchor = WordDoc.Application.Selection.Range;  
           float  Width = 200f; //图片宽度   
           float  Height = 200f; //图片高度   
 
           //将图片设置为四周环绕型   
           WdWrapType wdWrapType = Microsoft.Office.Interop.Word.WdWrapType.wdWrapSquare; 
           AddPic.AddSimplePic(WordDoc, FileName, Width, Height, Anchor, wdWrapType); 
 
           newTable.Cell(12, 1).Range.Text = "产品特殊属性" ;  
           newTable.Cell(12, 1).Merge(newTable.Cell(12, 3)); 
           //在表格中增加行   
           WordDoc.Content.Tables[1].Rows.Add(ref  Nothing);  
       } 
    } 
}  


四、插入chart
using  System; 
using  System.Collections.Generic; 
using  System.ComponentModel; 
using  System.Data; 
using  System.Linq; 
using  System.Text; 
using  Word = Microsoft.Office.Interop.Word; 
using  System.IO; 
using  System.Reflection; 
using  Microsoft.Office.Interop.Word; 
using  Microsoft.Office.Interop.Graph; 
using  System.Windows.Forms; 
using  System.Drawing; 
 
 
namespace  WordCreateDLL 

    public   class  AddChart  
    { 
        public   static   void  AddSimpleChart(Document WordDoc, Word.Application WordApp, Object oEndOfDoc,  string  [,]data)  
        { 
            //插入chart     
            object  oMissing = System.Reflection.Missing.Value;  
            Word.InlineShape oShape; 
            object  oClassType =  "MSGraph.Chart.8" ;  
            Word.Range wrdRng = WordDoc.Bookmarks.get_Item(ref  oEndOfDoc).Range;  
            oShape = wrdRng.InlineShapes.AddOLEObject(ref  oClassType,  ref  oMissing,  
                ref  oMissing,  ref  oMissing,  ref  oMissing,  
                ref  oMissing,  ref  oMissing,  ref  oMissing);  
 
            //Demonstrate use of late bound oChart and oChartApp objects to   
            //manipulate the chart object with MSGraph.   
            object  oChart;  
            object  oChartApp;  
            oChart = oShape.OLEFormat.Object; 
            oChartApp = oChart.GetType().InvokeMember("Application" ,BindingFlags.GetProperty,  null , oChart,  null );  
 
            //Change the chart type to Line.   
            object [] Parameters =  new  Object[1];  
            Parameters[0] = 4; //xlLine = 4   
            oChart.GetType().InvokeMember("ChartType" , BindingFlags.SetProperty,  
                null , oChart, Parameters);  
            Chart objChart = (Chart)oShape.OLEFormat.Object; 
            objChart.ChartType = XlChartType.xlColumnClustered; 
 
            //绑定数据   
            DataSheet dataSheet; 
            dataSheet = objChart.Application.DataSheet; 
            int  rownum=data.GetLength(0);  
            int  columnnum=data.GetLength(1);  
            for ( int  i=1;i<=rownum;i++ )  
                for  ( int  j = 1; j <= columnnum; j++)  
                {  
                   dataSheet.Cells[i,j] =data[i-1,j-1]; 
                } 
            objChart.Application.Update(); 
            oChartApp.GetType().InvokeMember("Update" ,  
                BindingFlags.InvokeMethod, null , oChartApp,  null );  
            oChartApp.GetType().InvokeMember("Quit" ,  
                BindingFlags.InvokeMethod, null , oChartApp,  null );  
 
            //设置大小   
            oShape.Width = WordApp.InchesToPoints(6.25f); 
            oShape.Height = WordApp.InchesToPoints(3.57f); 
          } 
    } 
}  
测试程序
private   void  button3_Click( object  sender, EventArgs e) 

           object  oMissing = System.Reflection.Missing.Value;  
           object  oEndOfDoc =  "//endofdoc" ;  /* /endofdoc is a predefined bookmark */   
 
           //Start Word and create a new document.   
           Word.Application oWord; 
           Word.Document oDoc; 
           oWord = new  Word.Application();  
           oWord.Visible = true ;  
           oDoc = oWord.Documents.Add(ref  oMissing,  ref  oMissing,  
               ref  oMissing,  ref  oMissing);  
 
           添加页眉   
           String HeaderText = "石化盈科" ;  
          // AddHeader.AddSimpleHeader(oWord, HeaderText);   
           WdParagraphAlignment wdAlign = WdParagraphAlignment.wdAlignParagraphCenter; 
           WdColor fontcolor = WdColor.wdColorBlue; 
           float  fontsize = 10;  
           //AddHeader.AddSimpleHeader(oWord, HeaderText, wdAlign);   
           AddHeader.AddSimpleHeader(oWord, HeaderText, wdAlign,fontcolor,fontsize); 
 
           //Insert a paragraph at the beginning of the document.   
           Word.Paragraph oPara1; 
           oPara1 = oDoc.Content.Paragraphs.Add(ref  oMissing);  
           oPara1.Range.Text = "Heading 1" ;  
           oPara1.Range.Font.Bold = 1; 
           oPara1.Format.SpaceAfter = 24;    //24 pt spacing after paragraph.   
           oPara1.Range.InsertParagraphAfter(); 
 
           //Insert a paragraph at the end of the document.   
           Word.Paragraph oPara2; 
           object  oRng = oDoc.Bookmarks.get_Item( ref  oEndOfDoc).Range;  
           oPara2 = oDoc.Content.Paragraphs.Add(ref  oRng);  
           oPara2.Range.Text = "Heading 2" ;  
           oPara2.Format.SpaceAfter = 6; 
           oPara2.Range.InsertParagraphAfter(); 
 
           //插入文字   
           Word.Paragraph oPara3; 
           oRng = oDoc.Bookmarks.get_Item(ref  oEndOfDoc).Range;  
           oPara3 = oDoc.Content.Paragraphs.Add(ref  oRng);  
           oPara3.Range.Text = "This is a sentence of normal text. Now here is a table:" ;  
           oPara3.Range.Font.Bold = 0; 
           oPara3.Format.SpaceAfter = 24; 
           oPara3.Range.InsertParagraphAfter(); 
 
           string  text =  "zhangruichao " ;  
           WdColor textcolor = fontcolor; 
           float  textsize = 12;  
           AddLine.AddSimpLine(oDoc, oEndOfDoc, oRng, text, textcolor, textsize); 
 
          //插入表格   
           WdLineStyle OutStyle = WdLineStyle.wdLineStyleThickThinLargeGap; 
           WdLineStyle InStyle = WdLineStyle.wdLineStyleSingle; 
           AddTable.AddSimpleTable(oWord, oDoc, 12, 3, OutStyle, InStyle); 
 
           //插入分页   
           Word.Range wrdRng = oDoc.Bookmarks.get_Item(ref  oEndOfDoc).Range;  
           object  oCollapseEnd = Word.WdCollapseDirection.wdCollapseEnd;  
           object  oPageBreak = Word.WdBreakType.wdPageBreak;  
           wrdRng.Collapse(ref  oCollapseEnd);  
           wrdRng.InsertBreak(ref  oPageBreak);  
           wrdRng.Collapse(ref  oCollapseEnd);  
           wrdRng.InsertAfter("We're now on page 2. Here's my chart:" );  
           wrdRng.InsertParagraphAfter(); 
 
           //Insert a chart.   
           string [,] data= new   string [4,5];  
 
           data[0,1] = "第一月" ;  
           data[0, 2] = "第二月" ;  
           data[0, 3] = "第三月" ;  
           data[0, 4] = "第四月" ;  
 
           data[1,0] = "东部" ;  
           data[1,1] = "50" ;  
           data[1,2] = "50" ;  
           data[1,3] = "40" ;  
           data[1,4] = "50" ;  
 
           data[2,0] = "西部" ;  
           data[2,1] = "60" ;  
           data[2,2] = "60" ;  
           data[2,3] = "70" ;  
           data[2,4] = "80" ;  
 
           //data[3,6] = "0";   
           data[3,0] = "中部" ;  
           data[3,1] = "50" ;  
           data[3,2] = "50" ;  
           data[3,3] = "40" ;  
           data[3,4] = "50" ;  
           AddChart.AddSimpleChart(oDoc, oWord, oEndOfDoc, data); 
           wrdRng = oDoc.Bookmarks.get_Item(ref  oEndOfDoc).Range;  
           wrdRng.InsertParagraphAfter(); 
           wrdRng.InsertAfter("THE END." );  
 
           //Close this form.   
           this .Close();  
 }  

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值