【问题标题】:OpenXML ASP.NET c#: tablecell vertical alignment issuesOpenXML ASP.NET c#:表格单元垂直对齐问题
【发布时间】:2015-05-22 07:59:53
【问题描述】:

我正在尝试对齐*.docx-documents 的表格单元格中的文本。 一切都很好,直到我将 tablecellproperty 附加到 tablecell 本身。

TableCell tc = new TableCell();

TableCellProperties tcpVA = new TableCellProperties();
TableCellVerticalAlignment tcVA= new TableCellVerticalAlignment() { Val = TableVerticalAlignmentValues.Center };
tcpVA.Append(tcVA);

tc.Append(new TableCellProperties(new TableCellWidth() { Type = TableWidthUnitValues.Pct, Width = columnwidths[i] }), tcpVA);

附加cellwidth、颜色等可以正常工作,但只有TableCellVerticalAlignment 不起作用。

TableCellProperty 的值已设置:

Val = "center"

但是在将TableCellProperties 附加到tablecell 之后,verticalalignment 的属性:

TableCellVerticalAlignment = null

【问题讨论】:

    标签: c# asp.net asp.net-mvc ms-word openxml


    【解决方案1】:

    您正在向TableCell 添加两个TableCellProperties,一个用于垂直对齐,另一个用于单元格宽度。该架构只允许一个TableCellProperties

    TableCellVerticalAlignmentTableCellWidth 应该都附加到 相同 TableCellProperties,然后只有 TableCellProperties 应该添加到单元格中。

    以下方法是一个示例,它将创建一个包含一个表格的文档,该表格有一个单元格,其中设置了宽度和对齐属性以及文本“Hello World!”在里面。

    public static void CreateWordDoc(string filename)
    {
        using (var wordDocument = WordprocessingDocument.Create(filename, WordprocessingDocumentType.Document))
        {
            // Add a main document part. 
            MainDocumentPart mainPart = wordDocument.AddMainDocumentPart();
    
            // Create the document structure
            mainPart.Document = new Document();
            Body body = mainPart.Document.AppendChild(new Body());
    
            //add a table, row and column
            Table table = body.AppendChild(new Table());
            TableRow row = table.AppendChild(new TableRow());
            TableCell tc = row.AppendChild(new TableCell());
    
            //create the cell properties
            TableCellProperties tcp = new TableCellProperties();
            //create the vertial alignment properties
            TableCellVerticalAlignment tcVA = new TableCellVerticalAlignment() { Val = TableVerticalAlignmentValues.Center };
            //create the cell width
            TableCellWidth tcW = new TableCellWidth() { Type = TableWidthUnitValues.Pct, Width = "100" };
            //append the vertical alignment and cell width objects to the TableCellProperties
            tcp.Append(tcW);
            tcp.Append(tcVA);
    
            //append ONE TableCellProperties object to the cell
            tc.Append(tcp);
    
            //add some text to the cell to test.
            Paragraph para = tc.AppendChild(new Paragraph());
            Run run = para.AppendChild(new Run());
            run.AppendChild(new Text("Hello World!"));
    
            mainPart.Document.Save();
        }
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-06-09
      • 2011-07-30
      • 1970-01-01
      • 2013-04-03
      相关资源
      最近更新 更多