学习C#调用OpenXml操作word文档的基本用法(36:学习特殊符号类-1)

1、分隔线

  openxml中的SeparatorMark类及ContinuationSeparatorMark类用于生成一条分隔主文档内容和注释内容的水平分隔线,前者的长度短一些,后者贯穿整个页面宽度。这两个类的命名空间为DocumentFormat.OpenXml.Wordprocessing。
  注意,虽然这两个类可以向本文中插入水平分割线(如下面示例代码及word文档效果所示),但通常它们用于Word文档的脚注或尾注区域,在文档正文中使用这两个类插入横线从语义和规范上都不正确,需要插入横线时,应使用段落边框(BottomBorder)或 Drawing类。

csharp 复制代码
run.Append(new Break());
run.Append(new SeparatorMark());

run.Append(new Break());
run.Append(new ContinuationSeparatorMark());
2、连字符

  openxml的SoftHyphen类,命名空间DocumentFormat.OpenXml.Wordprocessing,用于表示可选连字符,它在单词中标记一个仅在行末作为断字点时才显示为普通连字符"-" 的位置,在其他情况下不占用字符宽度,处于隐藏状态。

  NoBreakHyphen类,命名空间DocumentFormat.OpenXml.Wordprocessing,用于表示非断字连字符,它与普通连字符(-)视觉上完全相同,区别在于其强制使其两侧的文本被视作一个不可分割的整体,从而防止在此处自动换行,常用于确保特定词组或数字序列保持完整。

  这两个类的使用示例及在word文档中的效果如下所示:

csharp 复制代码
run.Append(new Break());
run.AppendChild(new Text("可选连字符示例:This is the word line"));
run.AppendChild(new SoftHyphen()); 
run.AppendChild(new Text("breaking in a sentence."));

run.Append(new Break());
run.AppendChild(new Text("非断字连字符示例:客服电话:123"));
run.AppendChild(new NoBreakHyphen()); 
run.AppendChild(new Text("4567"));  
3、制表符

  openxml的TabChar类,命名空间为DocumentFormat.OpenXml.Wordprocessing,用于向Word文档插入一个制表符(Tab),精确控制文本的水平位置,可用来实现对齐、缩进或构建类似表格的排版效果,类似于在word文档中按键盘上的Tab键。

  TabChar类的使用示例及在word文档中的效果如下所示:

csharp 复制代码
run.Append(new Text("---------------------------------------------"));

if (rbShortDate.Checked)
{
    run.Append(new Break());
    run.Append(new TabChar());
    run.Append(new TabChar());
    run.Append(new TabChar());
    run.Append(new TabChar());
    run.Append(new TabChar());
    run.Append(new Text("日期:"));
    run.Append(new YearShort());
    run.Append(new Text("-"));
    run.Append(new MonthShort());
    run.Append(new Text("-"));
    run.Append(new DayShort());
}

参考文献

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

相关推荐
AI刀刀3 小时前
豆包智能体对话导出后,如何构建长期归档与高效检索体系?
android·人工智能·word·excel·ai导出鸭
Jazz_z3 小时前
通过 Java 实现 Word 转 TXT
java·c#·word
小弥儿10 小时前
无需安装WPS 和 Office!开源 OfficeCLI,Claude/Copilot 可直接调用,自动生成编辑Word/PPT/Excel
word·powerpoint·excel
AI导出鸭PC端1 天前
豆包智能体停运在即,历史对话如何一键导出为 Word 或 PDF?
人工智能·pdf·word·豆包·ai导出鸭
asdzx671 天前
C# 通过模板生成 Word 文档:文本与图片占位符替换完整攻略
开发语言·c#·word
Metaphor6922 天前
使用 Python 在 Word 文档中添加批注
python·word
lang201509282 天前
Apache POI Word(docx) 实战教程:从入门到精通表格合并、图片插入与文档合并
java·开发语言·word
Sour2 天前
产品说明书翻译成英文怎么保留排版?PDF、Word、外贸资料处理清单
pdf·word
AI刀刀2 天前
豆包智能体 7 月 15 日全面下线:技术解读、数据迁移与自动化备份方案
运维·人工智能·自动化·word·excel·ai导出鸭
俊哥工具3 天前
解决文件正在使用无法删除,顽固文件清理工具超好用
智能手机·电脑·word·音视频·媒体