学习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,数值类型。

参考文献

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

相关推荐
木头软件1 天前
批量将 Word 文档重命名为其标题
开发语言·c#·word
CodeCraft Studio2 天前
国产化Word处理组件Spire.DOC教程:使用Python将文件自动化批量附加到 Word文档
python·自动化·word·spire.doc·文档自动化·word文档中添加附件·文档批量处理
东方佑2 天前
使用Python实现Word文档与JSON格式双向转换:完整教程与代码解析
python·json·word
wtsolutions2 天前
Sheet-to-Doc: Automate Document Generation with Excel Data and Word Templates
word·excel·wtsolutions
jayson.h2 天前
word宏批量插入.csv格式的附件
windows·word
大卡拉米2 天前
前端组件库 PDF、word、Excel预览
前端·pdf·word
m5655bj3 天前
使用 C# 设置 Word 段落对齐样式
开发语言·c#·word
TextIn智能文档云平台3 天前
如何将公司内部知识库(Word/PDF)接入大模型?
pdf·word
vfvfb3 天前
docx转jpg word转图片 大批量word文档每页都转图片
word·word转图片·docx转jpg
小小心LOVE3 天前
Vue3 安装和使用 vue-office来实现 Word、Excel 和 PDF 文件的预览
vue.js·word·excel