文本格式化
在Word文档处理中,文本格式化是提升文档可读性和专业性的关键环节。MudTools.OfficeInterop.Word库提供了丰富的文本格式化功能,包括字体、段落、样式等各个方面。本章将详细介绍如何使用这些功能创建格式精美的文档。
字体格式设置
字体格式化是文本格式化的基础,包括字体类型、大小、颜色、粗体、斜体等属性。
csharp
using var app = WordFactory.BlankWorkbook();
var document = app.ActiveDocument;
// 获取文档范围
var range = document.Range();
// 添加标题文本
range.Text = "文档标题\n";
首先创建文档并添加标题文本。
csharp
range.Font.Name = "微软雅黑";
range.Font.Size = 18;
range.Font.Bold = 1;
range.Font.Color = WdColor.wdColorBlue;
设置字体格式属性:
- Name:字体名称,设置为"微软雅黑"
- Size:字体大小,设置为18磅
- Bold:粗体,1表示开启,0表示关闭
- Color:字体颜色,设置为蓝色
csharp
// 添加正文内容
var contentRange = document.Range(document.Content.End - 1, document.Content.End - 1);
contentRange.Text = "这是文档的正文内容,使用标准字体格式。\n";
contentRange.Font.Name = "宋体";
contentRange.Font.Size = 12;
contentRange.Font.Bold = 0;
contentRange.Font.Italic = 0;
添加正文内容并设置标准格式:
- 使用"宋体"字体
- 字体大小为12磅
- 非粗体、非斜体
段落格式设置
段落格式化涉及对齐方式、缩进、行距、段前段后间距等属性。
csharp
using var app = WordFactory.BlankWorkbook();
var document = app.ActiveDocument;
// 添加标题
var titleRange = document.Range();
titleRange.Text = "居中标题\n";
titleRange.ParagraphFormat.Alignment = WdParagraphAlignment.wdAlignParagraphCenter;
titleRange.ParagraphFormat.SpaceAfter = 12;
设置居中标题:
- Alignment:段落对齐方式,设置为居中对齐
- SpaceAfter:段后间距,设置为12磅
csharp
// 添加左对齐段落
var leftPara = document.Range(document.Content.End - 1, document.Content.End - 1);
leftPara.Text = "这是左对齐的段落文本。\n";
leftPara.ParagraphFormat.Alignment = WdParagraphAlignment.wdAlignParagraphLeft;
// 添加右对齐段落
var rightPara = document.Range(document.Content.End - 1, document.Content.End - 1);
rightPara.Text = "这是右对齐的段落文本。\n";
rightPara.ParagraphFormat.Alignment = WdParagraphAlignment.wdAlignParagraphRight;
// 添加两端对齐段落
var justifyPara = document.Range(document.Content.End - 1, document.Content.End - 1);
justifyPara.Text = "这是两端对齐的段落文本,文本会自动调整以填满整行。\n";
justifyPara.ParagraphFormat.Alignment = WdParagraphAlignment.wdAlignParagraphJustify;
设置不同对齐方式的段落:
- 左对齐:wdAlignParagraphLeft
- 右对齐:wdAlignParagraphRight
- 两端对齐:wdAlignParagraphJustify
样式应用
样式是格式化的快捷方式,可以一次性应用一组预定义的格式设置。
csharp
using var app = WordFactory.BlankWorkbook();
var document = app.ActiveDocument;
// 应用内置样式
var heading1 = document.Range();
heading1.Text = "标题 1\n";
heading1.Style = "标题 1";
应用Word内置的"标题 1"样式。
csharp
var heading2 = document.Range(document.Content.End - 1, document.Content.End - 1);
heading2.Text = "标题 2\n";
heading2.Style = "标题 2";
var normalText = document.Range(document.Content.End - 1, document.Content.End - 1);
normalText.Text = "正文文本\n";
normalText.Style = "正文";
应用其他内置样式。
csharp
// 创建自定义样式
var customStyle = document.Styles.Add("我的自定义样式");
customStyle.Font.Name = "楷体";
customStyle.Font.Size = 14;
customStyle.Font.Color = WdColor.wdColorRed;
customStyle.ParagraphFormat.Alignment = WdParagraphAlignment.wdAlignParagraphCenter;
创建自定义样式并设置其属性:
- 字体:楷体
- 字号:14磅
- 颜色:红色
- 对齐:居中
csharp
var customRange = document.Range(document.Content.End - 1, document.Content.End - 1);
customRange.Text = "使用自定义样式的文本\n";
customRange.Style = "我的自定义样式";
应用自定义样式到文本。
列表和编号
列表和编号可以有效组织文档内容,提升可读性。
csharp
using var app = WordFactory.BlankWorkbook();
var document = app.ActiveDocument;
// 创建项目符号列表
var bulletList = document.Range();
bulletList.Text = "项目 1\n项目 2\n项目 3\n";
bulletList.ListFormat.ApplyBulletDefault();
创建项目符号列表:
- 添加列表项文本
- 使用ApplyBulletDefault()应用默认的项目符号格式
csharp
// 创建编号列表
var numberedList = document.Range(document.Content.End - 1, document.Content.End - 1);
numberedList.Text = "第一项\n第二项\n第三项\n";
numberedList.ListFormat.ApplyNumberDefault();
创建编号列表:
- 添加列表项文本
- 使用ApplyNumberDefault()应用默认的编号格式
csharp
// 创建多级列表
var multiLevelList = document.Range(document.Content.End - 1, document.Content.End - 1);
multiLevelList.Text = "主要项目\n子项目 1\n子项目 2\n另一个主要项目\n其子项目\n";
multiLevelList.ListFormat.ApplyOutlineNumberDefault();
创建多级列表:
- 添加具有层次结构的文本
- 使用ApplyOutlineNumberDefault()应用大纲编号格式
边框和底纹
边框和底纹可以突出显示重要内容或分隔不同部分。
csharp
using var app = WordFactory.BlankWorkbook();
var document = app.ActiveDocument;
// 添加文本
var range = document.Range();
range.Text = "带边框和底纹的文本\n";
// 设置边框
range.Borders.Enable = 1;
range.Borders[WdBorderType.wdBorderTop].LineStyle = WdLineStyle.wdLineStyleSingle;
range.Borders[WdBorderType.wdBorderLeft].LineStyle = WdLineStyle.wdLineStyleSingle;
range.Borders[WdBorderType.wdBorderBottom].LineStyle = WdLineStyle.wdLineStyleSingle;
range.Borders[WdBorderType.wdBorderRight].LineStyle = WdLineStyle.wdLineStyleSingle;
设置文本边框:
- Enable = 1:启用边框
- 分别设置上、左、下、右边框为单线样式
csharp
// 设置底纹
range.Shading.BackgroundPatternColor = WdColor.wdColorLightYellow;
设置底纹背景色为浅黄色。
制表符设置
制表符用于对齐文本,创建表格效果。
csharp
using var app = WordFactory.BlankWorkbook();
var document = app.ActiveDocument;
// 设置制表符
var range = document.Range();
range.Text = "姓名\t年龄\t职业\n张三\t25\t工程师\n李四\t30\t设计师\n";
使用制表符(\t)分隔列数据。
csharp
// 在特定位置添加制表符
range.ParagraphFormat.TabStops.Add(100, WdTabAlignment.wdAlignTabLeft);
range.ParagraphFormat.TabStops.Add(200, WdTabAlignment.wdAlignTabLeft);
range.ParagraphFormat.TabStops.Add(300, WdTabAlignment.wdAlignTabLeft);
添加制表符位置:
- 在100磅、200磅、300磅位置添加左对齐制表符
实际应用示例
以下示例演示了如何综合运用各种格式化功能创建专业文档:
csharp
using MudTools.OfficeInterop;
using System;
class DocumentFormattingDemo
{
public static void CreateFormattedDocument()
{
using var app = WordFactory.BlankWorkbook();
app.Visible = true;
try
{
var document = app.ActiveDocument;
// 设置文档属性
document.Title = "格式化文档示例";
// 添加标题
var title = document.Range();
title.Text = "公司年度报告\n";
title.Font.Name = "微软雅黑";
title.Font.Size = 24;
title.Font.Bold = 1;
title.Font.Color = WdColor.wdColorDarkBlue;
title.ParagraphFormat.Alignment = WdParagraphAlignment.wdAlignParagraphCenter;
title.ParagraphFormat.SpaceAfter = 24;
设置文档标题格式:
- 字体:微软雅黑,24磅,粗体,深蓝色
- 对齐:居中对齐
- 段后间距:24磅
csharp
// 添加副标题
var subtitle = document.Range(document.Content.End - 1, document.Content.End - 1);
subtitle.Text = "2025财年总结\n\n";
subtitle.Font.Name = "微软雅黑";
subtitle.Font.Size = 16;
subtitle.Font.Bold = 1;
subtitle.Font.Color = WdColor.wdColorBlue;
subtitle.ParagraphFormat.Alignment = WdParagraphAlignment.wdAlignParagraphCenter;
subtitle.ParagraphFormat.SpaceAfter = 18;
设置副标题格式:
- 字体:微软雅黑,16磅,粗体,蓝色
- 对齐:居中对齐
- 段后间距:18磅
csharp
// 添加章节标题
var sectionTitle = document.Range(document.Content.End - 1, document.Content.End - 1);
sectionTitle.Text = "财务概览\n";
sectionTitle.Font.Name = "微软雅黑";
sectionTitle.Font.Size = 14;
sectionTitle.Font.Bold = 1;
sectionTitle.ParagraphFormat.SpaceAfter = 12;
设置章节标题格式:
- 字体:微软雅黑,14磅,粗体
- 段后间距:12磅
csharp
// 添加正文内容
var content = document.Range(document.Content.End - 1, document.Content.End - 1);
content.Text = "本年度公司实现了显著的财务增长,总收入达到1.2亿元,同比增长15%。净利润为3000万元,同比增长20%。\n\n";
content.Font.Name = "宋体";
content.Font.Size = 12;
content.ParagraphFormat.Alignment = WdParagraphAlignment.wdAlignParagraphJustify;
content.ParagraphFormat.FirstLineIndent = 21; // 首行缩进
设置正文内容格式:
- 字体:宋体,12磅
- 对齐:两端对齐
- 首行缩进:21磅(约等于中文两个字符的宽度)
csharp
// 添加要点列表
var points = document.Range(document.Content.End - 1, document.Content.End - 1);
points.Text = "收入增长主要来源:\n• 产品线扩展\n• 市场份额提升\n• 新客户获取\n";
points.Font.Name = "宋体";
points.Font.Size = 12;
// 添加表格数据
var tableSection = document.Range(document.Content.End - 1, document.Content.End - 1);
tableSection.Text = "\n关键财务指标:\n";
tableSection.Font.Name = "微软雅黑";
tableSection.Font.Size = 13;
tableSection.Font.Bold = 1;
添加列表和表格标题,并设置相应格式。
csharp
// 创建表格
var tableRange = document.Range(document.Content.End - 1, document.Content.End - 1);
var table = document.Tables.Add(tableRange, 4, 3);
table.Cell(1, 1).Range.Text = "指标";
table.Cell(1, 2).Range.Text = "2024年";
table.Cell(1, 3).Range.Text = "2025年";
table.Cell(2, 1).Range.Text = "总收入(万元)";
table.Cell(2, 2).Range.Text = "10,000";
table.Cell(2, 3).Range.Text = "12,000";
table.Cell(3, 1).Range.Text = "净利润(万元)";
table.Cell(3, 2).Range.Text = "2,500";
table.Cell(3, 3).Range.Text = "3,000";
table.Cell(4, 1).Range.Text = "增长率";
table.Cell(4, 2).Range.Text = "-";
table.Cell(4, 3).Range.Text = "20%";
创建并填充表格数据。
csharp
// 格式化表格
table.Borders.Enable = 1;
table.Rows.Alignment = WdRowAlignment.wdAlignRowCenter;
// 保存文档
document.SaveAs2(@"C:\temp\FormattedDocumentDemo.docx");
Console.WriteLine($"格式化文档已创建: {document.FullName}");
}
catch (Exception ex)
{
Console.WriteLine($"创建文档时出错: {ex.Message}");
}
}
}
设置表格格式并保存文档。
应用场景
- 企业报告:创建专业的企业财务报告、年度总结等
- 学术论文:格式化论文标题、摘要、正文和参考文献
- 合同文档:标准化合同格式,确保法律文档的专业性
- 营销材料:制作宣传册、产品介绍等营销文档
要点总结
- 字体格式化包括字体类型、大小、颜色、粗体、斜体等基本属性
- 段落格式化涉及对齐方式、缩进、行距等布局属性
- 样式提供了一种快速应用一组格式设置的方法
- 列表和编号有助于组织和结构化文档内容
- 边框和底纹可以突出显示重要信息
- 制表符用于创建对齐的文本布局
掌握文本格式化技能对于创建专业、美观的Word文档至关重要,这些功能使开发者能够自动化生成符合企业或行业标准的文档。