学习C#调用OpenXml操作word文档的基本用法(29:学习中断类)

  中断类Break是openxml中用于手动插入换行符、分页符或分栏符的核心类,命名空间为DocumentFormat.OpenXml.Wordprocessing,对应document.xml文件内的<w:br>元素,负责精细控制文档布局。

  中断类用于在文本运行类(Run)的当前位置放置中断,中断是一种特殊字符,用于替代基于文档内容的正常布局执行的常规换行,插入中断字符后会重新启动文本的位置,具体位置由中断类实例的类型和清除属性值确定。
  中断类Break的类继承链为OpenXmlElement -> OpenXmlLeafElement -> Break,其主要属性包括以下两个:
  1)Type属性:设置中断类型,从枚举值BreakValues内取值,值为page时在当前位置插入分页符,值为column时跳至下一分栏的顶部继续排版,值为textWrapping时强制换到下一行;
  2)Clear属性:设置处理文本换行时后续文本的具体位置,从枚举值BreakTextRestartLocationValues内取值,此属性仅在Type值为textWrapping时生效。
  以上一篇文章的代码为例,在程序中输入的内容是5行,但写入word文档时由于只创建了一个Text实例,仅保留了文本中的空格,为将内容按行显示,取每行内容创建Text实例,并在其后插入换行符,示例代码及运行效果如下所示:

csharp 复制代码
using (WordprocessingDocument wordDocument = WordprocessingDocument.Create(sfd.FileName, WordprocessingDocumentType.Document))
{
    MainDocumentPart mainPart = wordDocument.AddMainDocumentPart();
    mainPart.Document = new Document();
    Body body = mainPart.Document.AppendChild(new Body());
    
    Paragraph paragraph = body.AppendChild(new Paragraph());
    Run run = paragraph.AppendChild(new Run());

    for (int i = 0; i < txtContent.Lines.Length; i++) 
    {
        Text text = new Text();
        text.Space = SpaceProcessingModeValues.Preserve;
        text.Text = txtContent.Lines[i];
        run.AppendChild(text);

        if(i!=txtContent.Lines.Length-1)
        {
            run.Append(new Break());
        }
    }
}

参考文献

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

相关推荐
wujian83116 小时前
怎么用千问生成word文档:从「格式崩」到「一键过」,AI导出鸭打通最后半厘米
人工智能·ai·c#·word·豆包·deepseek·ai导出鸭
Am-Chestnuts10 小时前
豆包表格复制到 Word 后错列,先保留 Markdown 再转换
word
2601_9659130010 小时前
多份PDF批量转Word合并,三次踩坑后的方案对比与性能评估
pdf·word
DS随心转APP12 小时前
deepseek生成的word怎么下载 AI导出鸭全平台方案技术深度测评
人工智能·ai·chatgpt·word·deepseek·ai导出鸭
Am-Chestnuts14 小时前
AI 复制到 Word 图片丢失怎么办?先检查图片来源和保存方式
word
DS随心转小程序15 小时前
AI 导出鸭重构转化链路,全面优化腾讯元宝输出 word 文档办公效率
人工智能·重构·aigc·word·豆包·deepseek·ai导出鸭
皮皮虾❀17 小时前
千问办公+Office一站式生成+原生编辑一体化实战:从“AI生成文档格式错乱”到“PPT/Word/Excel直接出成品可商用”的交付型AI落地路径
人工智能·word·powerpoint
AI导出鸭18 小时前
怎么让豆包做表格?AI导出鸭苹果版将豆包输出的管道表格智能解析为二维结构,一键导出为Excel或Word标准表格。
人工智能·chatgpt·word·excel·ai导出鸭
yuhulkjv3351 天前
Claude表格复制到word不再崩溃,AI导出鸭批量导出+格式无损一键搞定
人工智能·ai·c#·word·ai导出鸭
DS随心转小程序1 天前
ChatGPT 文字怎么转为 word?解析各类转换方案,AI 导出鸭成为高效文档转换新选择
人工智能·chatgpt·word·豆包·deepseek·ai导出鸭