Microsoft.Office.Interop.Word 创建word

1 篇文章 0 订阅

转载 https://www.cnblogs.com/chenbg2001/archive/2010/03/14/1685746.html
Microsoft.Office.Interop.Word 创建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;
        }


    }
}

view plaincopy to clipboardprint?

   

    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;
        }

    }
}

view plaincopy to clipboardprint?

   

    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);
        }


    }
}

view plaincopy to clipboardprint?

   

    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);

        }
    }
}

view plaincopy to clipboardprint?

测试程序

    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
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值