一、使用C#向Word文档中写入文本
文本是一个Word文档中最简单的元素,通过各种形式的文本与其他元素有机组合才形成了一个完整的Word文档。本节介绍如何使用C#向Word文档中写入文本信息。
在向Word文档中写入文本时,仍然需要使用上节介绍的Microsoft Word X Object Library COM组件。写入文本的方法主要为设置MSWord.Document.Paragraphs.Last.Range.Text属性,通过设置不同的字符串,即可达到写入文本的目的。
下面介绍如何向Word文档中写入文本与多行文本
添加对Microsoft Word 12.0 Object Library的引用
using MSWord=Microsoft.Office.Interop.Word;
using System.IO;
using System.Reflection;
class Program
{
static void Main(string[] args)
{
object path;//文件路径变量
string strContent;//文本内容变量
MSWord.Application wordApp;//Word应用程序变量
MSWord.Document wordDoc;//Word文档变量
path=@"c:\MyWord.docx";//路径
wordApp =new MSWord.ApplicationCalss();//初始化
//如果已存在,则删除
if(File.Exists((string)path))
{
File.Delete((string)path);
}
//由于使用的是COM库,因此有许多变量需要用Missing.Value代替
Object Nothing=Missing.Value;
wordDoc=wordApp.Documents.Add(ref Nothing,ref Nothing,ref Nothing,ref Nothing);
strContent="使用c#向Word文档中写入文本\n";
wordDoc.Paragraphs.Last.Range.Text=strContent;
strContent="写入第二行文本";
wordDoc.Paragraphs.Last.Range.Test=strContent;
//WdSaveFormat为Word 2007文档的保存格式
object format=MSWord.WdSaveFormat.wdFormatDocumentDefault;
//将wordDoc文档对象的内容保存为DOCX文档
wordDoc.SaveAs(ref path,ref format,ref Nothing,ref Nothing,ref Nothing,ref Nothing,ref Nothing,ref Nothing,ref Nothing,ref Nothing,ref Nothing,ref Nothing,ref Nothing,ref Nothing,ref Nothing,ref Nothing);
//关闭wordDoc文档对象
wordDoc.Close(ref Nothing,ref Nothing,ref Nothing);
//关闭wordApp组件对象
wordApp.Quit(ref Nothing,ref Nothing,ref Nothing);
Console.WriteLine(path+"创建完毕!");
}
}
二、使用C#向Word输出格式化的文本
一个Word文档不可能全部由无格式的普通文本组成,因此在从C#中向Word写入文本信息时经常要输出一些具有特殊字体、颜色的文本。本节介绍如何向word输出格式化的文本。Microsoft Word X Object Library COM组件中文本格式的设置主要是由文本所使用的字体决定的。该COM组件中可以直接设置C#中的Font类,使用非常方便。常用的格式属性有颜色、加粗、斜体、下画线等。
分别介绍以下内容:
输出不同字体的文本
输出不同颜色的文本
输出带下画线的文本
输出斜体文本
输出加粗文本
添加对Microsoft Word 12.0 Object Library的引用
using MSWord=Microsoft.Office.Interop.Word;
using System.IO;
using System.Reflection;
class Program
{
static void Main(string[] args)
{
object path;//文件路径变量
string strContent;//文本内容变量
MSWord.Application wordApp;//Word应用程序变量
MSWord.Document wordDoc;//Word文档变量
path=@"c:\MyWord.docx";//路径
wordApp=new MSWord.ApplicationClass();//初始化
//如果已存在,则删除
if(File.Exists((string)path))
{
File.Delete((string)path);
}
//由于使用的是COM库,因此有许多变量需要用Missing.Value代替
Object Nothing=Missing.Value;
wordDoc=wordApp.Documents.Add(ref Nothing,ref Nothing,ref Nothing,ref Nothing);
//写入普通文本
strContent="普通文本普通文本普通文本普通文本普通文本\n";
wordDoc.Paragraphs.Last.Range.Text=strContent;
//写入黑体文本
strContent="黑体文本黑体文本黑体文本黑体文本黑体文本\n";
wordDoc.Paragraphs.Last.Range.Font.Name="黑体";
wordDoc.Paragraphs.Last.Range.Text=strContent;
//写入加粗文本
strContent="加粗文本加粗文本加粗文本加粗文本加粗文本\n";
wordDoc.Paragraphs.Last.Range.Font.Bold=1;
wordDoc.Paragraphs.Last.RAnge.Text=strContent;
//写入15号字体文本
strContent="15号字体文本15号字体文本15号字体文本15号字体文本\n";
wordDoc.Paragraphs.Last.Range.Font.Size=15;
wordDoc.Paragraphs.Last.RAnge.Text=strContent;
//写入斜体文本
strContent="斜体文本斜体文本斜体文本斜体文本斜体文本\n";
wordDoc.Paragraphs.Last.Range.Font.Italic=1;
wordDoc.Paragraphs.Last.RAnge.Text=strContent;
//写入蓝色文本
strContent="蓝色文本蓝色文本蓝色文本蓝色文本蓝色文本\n";
wordDoc.Paagraphs.Last.Range.Font.Color=MSWord.WdColor.wdColorBlue;
wordDoc.Paragraphs.Last.RAnge.Text=strContent;
//写入下画线文本
strContent="下画线文本下画线文本下画线文本下画线文本下画线文本\n";
wordDoc.Paragraphs.Last.Range.Font.Underline=MSWord.WdUnderline.wdUnderlineThick;
wordDoc.Paragraphs.Last.RAnge.Text=strContent;
//写入红色下画线文本
strContent="红色下画线文本红色下画线文本红色下画线文本红色下画线文本\n";
wordDoc.Paragraphs.Last.Range.Font.Underline=MSWord.WdUnderline.wdUnderlineThick;
wordDoc.Paragraphs.Last.Range.Font.UnderlineColor=MSWord.WdColor.wdColorRed;
wordDoc.Paragraphs.Last.RAnge.Text=strContent;
//WdSaveFormat为Word2007文档的保存格式
object format=MSWord.WdSaveFormat.wdFormatDocumentDefault;
//将wordDoc文档对象的内容保存为DOCX文档
wordDoc.SaveAs(ref path,ref format,ref Nothing,ref Nothing,ref Nothing,ref Nothing,ref Nothing,ref Nothing,ref Nothing,ref Nothing,ref Nothing,ref Nothing,ref Nothing,ref Nothing,ref Nothing,ref Nothing);
//关闭wordDoc文档对象
wordDoc.Close(ref Nothing,ref Nothing,ref Nothing);
//关闭wordApp组件对象
wordApp.Quit(ref Nothing,ref Nothing,ref Nothing);
Console.WriteLine(path+"创建完毕!");
}
}