Openxml中的Style类用于定义Word文档中的各种样式,主要针对段落、字符、表格等数据类型,其主要属性如下表所示:
| 序号 | 名称 | 说明 |
|---|---|---|
| 1 | BasedOn | 指定当前样式所基于的父样式,对应的应该是word文档新建样式操作中的样式基准设置,类型为BasedOn,使用该属性的样式继承另一个已存在的样式的所有属性,只需重新定义差异化的部分,极大地简化了样式的创建和维护 |
| 2 | CustomStyle | 是否为用户自定义样式 |
| 3 | LinkedStyle | 用于保存与链接相关的样式设置,类型为LinkedStyle |
| 4 | NextParagraphStyle | 设置按下回车键后创建的段落应使用的样式,类型为NextParagraphStyle,应设置为当前文档中已定义的样式名称 |
| 5 | StyleId | 样式的唯一标识符,用于文档内部引用样式 |
| 6 | StyleName | 样式的显示名称 |
| 7 | StyleParagraphProperties | 用于保存与段落相关的样式设置,如对齐、缩进、间距等,类型为StyleParagraphProperties |
| 8 | StyleRunProperties | 用于保存与字符相关的样式设置,如字体、字号、颜色、加粗等,类型为StyleRunProperties |
| 9 | StyleTableCellProperties | 用于保存Word文档表格样式中的单元格视觉外观,例如边框、背景色和对齐方式等,类型为StyleTableCellProperties |
| 10 | StyleTableProperties | 用于保存表格样式的蓝图,所有应用该样式的表格都会自动继承这些属性,确保文档中表格外观的统一性,类型为StyleTableProperties |
| 11 | Type | 样式适用类型,如段落(Paragraph)、字符(Character)、表格(Table)等 |

最后给出创建简单自定义样式的示例代码及运行效果,后续再逐步学习段落、文本等样式相关的数据类型用法。
csharp
using (WordprocessingDocument wordDoc = WordprocessingDocument.Open(txtFilePath.Text, true))
{
// 获取样式定义节点
StyleDefinitionsPart stylePart = wordDoc.MainDocumentPart.StyleDefinitionsPart;
// 创建自定义样式
Style myStyle = new Style()
{
Type = StyleValues.Paragraph,
StyleId = "MyStyle",
CustomStyle = true
};
myStyle.Append(new StyleName() { Val = "自定义样式" });
myStyle.Append(new BasedOn() { Val = "Normal" });
myStyle.Append(new NextParagraphStyle() { Val = "Normal" });
StyleParagraphProperties paragraphProperties = new StyleParagraphProperties();
paragraphProperties.Append(new SpacingBetweenLines()
{
Before = "240",
After = "120"
});
paragraphProperties.Append(new OutlineLevel() { Val = 0 });
StyleRunProperties runProperties = new StyleRunProperties();
runProperties.Append(new RunFonts() { Ascii = "黑体" });
runProperties.Append(new FontSize() { Val = "32" });
runProperties.Append(new Bold());
runProperties.Append(new Color() { Val = "2E74B5" });
myStyle.Append(paragraphProperties);
myStyle.Append(runProperties);
stylePart.Styles.Append(myStyle);
wordDoc.Save();
}

参考文献
1\]https://github.com/dotnet/Open-XML-SDK \[2\]https://learn.microsoft.com/zh-cn/office/open-xml/open-xml-sdk \[3\]https://learn.microsoft.com/zh-cn/dotnet/api/documentformat.openxml.wordprocessing.style?view=openxml-3.0.1 \[4\]https://blog.csdn.net/i042416/article/details/126228816