要在使用 OpenXML 创建的 Word 文档中实现列跨页显示数据,可以使用以下步骤:

  1. 创建一个包含表格的文档。
  2. 在表格中添加列定义和表头。
  3. 添加数据行到表格中。如果数据行的内容超过了当前页的可见区域,需要在下一页继续显示该行的内容。
  4. 在需要分页的地方添加分页符。
  5. 保存并关闭文档。

以下是一个示例代码,演示如何使用 OpenXML 创建一个包含列跨页显示数据的表格:

using DocumentFormat.OpenXml;
using DocumentFormat.OpenXml.Packaging;
using DocumentFormat.OpenXml.Wordprocessing;

class Program
{
    static void Main(string[] args)
    {
        // 创建一个包含表格的文档
        using (WordprocessingDocument doc = WordprocessingDocument.Create('output.docx', WordprocessingDocumentType.Document))
        {
            MainDocumentPart mainPart = doc.AddMainDocumentPart();
            mainPart.Document = new Document();
            Body body = mainPart.Document.AppendChild(new Body());
            Table table = body.AppendChild(new Table());
            
            // 添加列定义和表头
            TableProperties tableProperties = table.AppendChild(new TableProperties());
            TableWidth tableWidth = new TableWidth() { Width = '5000', Type = TableWidthUnitValues.Pct };
            tableProperties.AppendChild(tableWidth);
            TableGrid tableGrid = table.AppendChild(new TableGrid());
            for (int i = 0; i < 3; i++)
            {
                tableGrid.AppendChild(new GridColumn());
            }
            TableRow headerRow = table.AppendChild(new TableRow());
            headerRow.AppendChild(CreateTableCell('Header 1'));
            headerRow.AppendChild(CreateTableCell('Header 2'));
            headerRow.AppendChild(CreateTableCell('Header 3'));

            // 添加数据行到表格中
            for (int i = 0; i < 10; i++)
            {
                TableRow dataRow = table.AppendChild(new TableRow());
                dataRow.AppendChild(CreateTableCell('Data ' + (i + 1) + '1'));
                dataRow.AppendChild(CreateTableCell('Data ' + (i + 1) + '2'));
                dataRow.AppendChild(CreateTableCell('Data ' + (i + 1) + '3'));

                // 如果数据行的内容超过了当前页的可见区域,需要在下一页继续显示该行的内容
                if (i == 4)
                {
                    dataRow.AppendChild(new TableCell(new Paragraph(new Run(new Break() { Type = BreakValues.Page }))));
                }
            }

            // 保存并关闭文档
            doc.Save();
        }
    }

    static TableCell CreateTableCell(string text)
    {
        return new TableCell(new Paragraph(new Run(new Text(text))));
    }
}

这个示例创建了一个包含3列的表格,并在表格中添加了一个表头和10行数据。当第5行的数据超过了当前页的可见区域时,在下一页继续显示该行的内容。

C# OpenXML: 实现 Word 文档表格列跨页显示数据

原文地址: https://www.cveoy.top/t/topic/ql3M 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录