学习C#调用OpenXml操作word文档的基本用法(5:Style类分析-3)

  OpenXML中的StyleParagraphProperties类用于定义段落样式的格式属性,例如对齐、缩进和间距等,它与ParagraphProperties类的主要区别在于作用范围,前者用于样式定义,而后者用于具体段落。

  1)KeepNext属性:用于设置当前段落与其下一个段落保持在同一页,其效果等同于word文档中段落设置的换行和分页选项卡下的与下段同页复选框,类型为KeepNext,布尔值类型。
  2)KeepLines属性:用于设置段落的所有行都保持在同一页,其效果等同于word文档中段落设置的换行和分页选项卡下的段中不分页复选框,类型为KeepLines,布尔值类型。
  3)PageBreakBefore属性:用于设置段落前启用分页,其效果等同于word文档中段落设置的换行和分页选项卡下的段前分页复选框,类型为PageBreakBefore,布尔值类型。
  4)WidowControl属性:用于设置段落排版时的孤行控制,其效果等同于word文档中段落设置的换行和分页选项卡下的孤行控制复选框,类型为WidowControl,布尔值类型。当段落的最后一行单独出现在下一页的顶部,或第一行单独留在上一页的底部时,WidowControl能自动调整段落的分页。
  5)NumberingProperties属性:用于设置段落与编号/项目符号的关联,类型为NumberingProperties,其主要属性包括NumberingId和NumberingLevelReference,前者设置段落与文档NumberingPart中定义的特定列表的关联关系,后者设置对应列表中的哪一级(例如0表示第一级),使用示例如下:

csharp 复制代码
StyleParagraphProperties paragraphProperties = new StyleParagraphProperties();
NumberingProperties numberingProps = new NumberingProperties();
numberingProps.NumberingId = new NumberingId() { Val = 1 }; // 引用ID为1的列表
numberingProps.NumberingLevelReference = new NumberingLevelReference() { Val = 2 }; // 使用第3级编号

paragraphProperties.Append(numberingProps);

  6)SuppressLineNumbers属性:用于设置段落是否显示行号,其效果等同于word文档中段落设置的换行和分页选项卡下的取消行号复选框,类型为SuppressLineNumbers,布尔值类型。
  7)ParagraphBorders属性:用于设置段落的边框样式,类型为ParagraphBorders,主要属性包括TopBorder、LeftBorder、BottomBorder、RightBorder、BetweenBorder、BarBorder,这些属性的类型都继承自BorderType,该类型的主要属性如下表所示:BorderValues

序号 名称 说明
1 Val 边框样式,从枚举值BorderValues内取值
2 Color 边框颜色 ,采用RGB字符串赋值,例如"000000"表示黑色
3 Size 边框的宽度
4 Space 边框与内容之间的间距
5 Shadow 是否显示阴影效果

  8)Shading属性:用于设置段落的背景填充效果,类型为Shading,取值为ShadingPatternValues型,其效果示例如下所示。

  9)Tabs属性:用于管理段落的制表符设置,该属性不直接包含制表符数据,而是作为一系列TabStop(制表位)定义的容器。TabStop类用于定义单个制表位的位置和属性,对应着 Word 文档中通过标尺或对话框设置的制表位,其主要属性如下:

序号 名称 说明
1 Val 设置制表位的对齐方式,从枚举值TabStopValues内取值
2 Leader 设置制表位前导符的样式 ,从枚举值TabStopLeaderCharValues内取值
3 Position 设置制表位的具体位置

  10)SuppressAutoHyphens属性:用于设置段落的自动断字功能,其效果等同于word文档中段落设置的换行和分页选项卡下的取消断字复选框,类型为SuppressAutoHyphens,布尔值类型。
  11)WordWrap属性:用于设置段落是否允许西文文字在文字中间换行,其效果等同于word文档中段落设置的中文版式选项卡下的允许西文在单词中间换行复选框,类型为WordWrap,布尔值类型。
  12)OverflowPunctuation属性:用于设置段落是否允许标点溢出,其效果等同于word文档中段落设置的中文版式选项卡下的允许标点溢出边界复选框,类型为OverflowPunctuation,布尔值类型。
  13)TopLinePunctuation属性:用于设置段落是否允许标点挤压,其效果等同于word文档中段落设置的中文版式选项卡下的允许行首标点压缩复选框,类型为TopLinePunctuation,布尔值类型。
  14)AutoSpaceDE属性:用于设置段落是否允许自动调整中文和西文的间距,其效果等同于word文档中段落设置的中文版式选项卡下的自动调整中文和西文的间距复选框,类型为AutoSpaceDE,布尔值类型。
  15)AutoSpaceDN属性:用于设置段落是否允许自动调整中文和数字的间距,其效果等同于word文档中段落设置的中文版式选项卡下的自动调整中文和数字的间距复选框,类型为AutoSpaceDN,布尔值类型。
  16)AdjustRightIndent属性:用于设置段落是否允许自动调整右缩进,其效果等同于word文档中段落设置的缩进和间距选项卡下的"如果定义了文档网格,则自动调整右缩进"复选框,类型为AdjustRightIndent,布尔值类型。
  17)SnapToGrid属性:用于设置段落是否对齐到网格,其效果等同于word文档中段落设置的缩进和间距选项卡下的"如果定义了文档网格,则对齐到网格"复选框,类型为SnapToGrid,布尔值类型。
  18)SpacingBetweenLines属性:用于设置段落前后间距和行距,其效果等同于word文档中段落设置的缩进和间距选项卡下的间距设置,类型为SpacingBetweenLines,其主要属性如下:

序号 名称 说明
1 Before 设置段前间距,以1/20磅为单位
2 BeforeLines 设置段前间距,以行为单位,值为百分比数值
3 BeforeAutoSpacing 自动调整段前间距,布尔值类型
4 After 设置段后间距,以1/20磅为单位
5 AfterLines 设置段后间距,以行为单位,值为百分比数值
6 AfterAutoSpacing 自动调整段后间距,布尔值类型
7 LineRule 设置行距规则,从枚举值LineSpacingRuleValues内取值
8 Line 设置行距,值以行高倍数表示,如 "240" = 1倍行高,"480" = 2倍行高

  19)Indentation属性:用于设置段落的缩进,其效果等同于word文档中段落设置的缩进和间距选项卡下的缩进设置,类型为Indentation,其主要属性如下:

序号 名称 说明
1 Left 设置段落左侧缩进距离,以缇(1/20磅)为单位
2 LeftChars 设置段落左侧缩进距离,以字符数为单位,值为百分比数值
3 start 设置段落开始处的缩进距离,同left,该属性仅在office2010及以上版本中支持
4 StartCharacters 设置段落开始处的缩进距离,同LeftChars ,该属性仅在office2010及以上版本中支持
5 Right 设置段落右侧缩进距离,以缇(1/20磅)为单位
6 RightChars 设置段落右侧缩进距离,以字符数为单位,值为百分比数值
7 End 设置段落结尾处的缩进距离,同Right ,该属性仅在office2010及以上版本中支持
8 EndCharacters 设置段落结尾处的缩进距离,同RightChars,该属性仅在office2010及以上版本中支持
9 Hanging 设置段落悬挂缩进距离,以缇(1/20磅)为单位
10 HangingChars 设置段落悬挂缩进距离,以字符数为单位,值为百分比数值
11 FirstLine 设置段落首行缩进距离,以缇(1/20磅)为单位
12 FirstLineChars 设置段落首行缩进距离,以字符数为单位,值为百分比数值

  20)ContextualSpacing属性:用于设置是否在相同样式的段落间增加间距,类型为ContextualSpacing,布尔值类型。
  21)MirrorIndents属性:用于设置是否在对开页上交换缩进,类型为MirrorIndents,布尔值类型。
  22)Justification属性:用于设置段落的对齐方式,其效果等同于word文档中段落设置的缩进和间距选项卡下的对齐方式设置,类型为Justification,从枚举值JustificationValues取值。
  23)TextDirection属性:用于设置段落中文本的排列方向,类型为TextDirection,从枚举值TextDirectionValues取值。
  24)TextAlignment属性:用于设置段落的文本对齐方式,其效果等同于word文档中段落设置的中文版式选项卡下的文本对齐方式设置,类型为TextAlignment,从枚举值VerticalTextAlignmentValues取值。
  25)TextBoxTightWrap属性:用于设置文本环绕文本框的方式,其效果等同于word文档中段落设置的换行和分页选项卡下的紧密环绕方式设置,类型为TextBoxTightWrap,从枚举值TextBoxTightWrapValues取值。
  26)OutlineLevel属性:用于设置段落的大纲级别,类型为OutlineLevel,数值类型。

参考文献

1https://github.com/dotnet/Open-XML-SDK

2https://learn.microsoft.com/zh-cn/office/open-xml/open-xml-sdk

3https://learn.microsoft.com/zh-cn/dotnet/api/documentformat.openxml.wordprocessing.style?view=openxml-3.0.1

4https://blog.csdn.net/i042416/article/details/126228816

相关推荐
yuhulkjv33512 小时前
Claude表格复制到word不再崩溃,AI导出鸭批量导出+格式无损一键搞定
人工智能·ai·c#·word·ai导出鸭
DS随心转小程序14 小时前
ChatGPT 文字怎么转为 word?解析各类转换方案,AI 导出鸭成为高效文档转换新选择
人工智能·chatgpt·word·豆包·deepseek·ai导出鸭
DS随心转小程序1 天前
借助 AI 导出鸭简化各类办公场景下文心输出 word 文档全流程操作
人工智能·aigc·word·豆包·deepseek·ai导出鸭
AI刀刀1 天前
腾讯元宝粘贴到 word 格式混乱,AI 导出鸭一键规整排版
人工智能·c#·word·ai导出鸭
glustful1 天前
Word在线编辑技术体系全景深度分析
word·在线文档·docx
DS随心转APP1 天前
Claude的表格怎么导到word?AI 导出鸭一键高保真还原,批量导出告别格式噩梦
人工智能·chatgpt·word·ai导出鸭
DS随心转APP1 天前
Grok的表格怎么导到word?AI 导出鸭一键高保真还原,批量导出告别格式噩梦
人工智能·chatgpt·word·ai导出鸭
yuhulkjv3351 天前
Kimi表格复制到word不再崩坏,AI导出鸭批量导出完美保留公式与边框
人工智能·ai·word·ai导出鸭
DS随心转小程序1 天前
巧用 AI 导出鸭攻克各类难题完善 ChatGPT 输出 word 文档转化工作
人工智能·chatgpt·aigc·word·豆包·deepseek·ai导出鸭
农村小镇哥3 天前
怎么把HTM格式转化成WORD
ui·c#·word