在C#中using word的命名空间,大多是利用Microsoft.Office.Interop.Word来生成word的方法。以下是一些C#中using word的不同用法
将现有的C#中using word劳动成果放在这里。有时间在加以完善!
一、添加页眉
- 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 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 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 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 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);
- }
- }
- }
- 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
- 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;
- 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);
- }
- }
- }
- 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);
- }
- }
- }
C#中using word测试程序
- 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();
- }
【编辑推荐】