加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c# – 带有OpenXML SDK 2.0的tableCell文本中的对齐

发布时间:2020-12-15 18:09:38 所属栏目:百科 来源:网络整理
导读:我想在表格单元格中使用Open XML应用文本对齐方式. 我不明白为什么它没有应用. Table table = new Table();TableRow tableHeader = new TableRow();table.AppendChildTableRow(tableHeader);TableCell tableCell = new TableCell();tableHeader.AppendChildT
我想在表格单元格中使用Open XML应用文本对齐方式.

我不明白为什么它没有应用.

Table table = new Table();
TableRow tableHeader = new TableRow();
table.AppendChild<TableRow>(tableHeader);
TableCell tableCell = new TableCell();
tableHeader.AppendChild<TableCell>(tableCell);
Paragraph paragraph = new Paragraph(new Run(new Text("test")));
ParagraphProperties paragraphProperties = new ParagraphProperties();
JustificationValues? justification = GetJustificationFromString("centre");
if (justification != null)
{
     paragraphProperties.AppendChild<Justification>(new Justification() { Val = justification });
}
paragraph.AppendChild<ParagraphProperties>(paragraphProperties);
tableCell.AppendChild<Paragraph>(paragraph);


public static JustificationValues? GetJustificationFromString(string alignment)
{
    switch(alignment)
    {
        case "centre" : return JustificationValues.Center;
        case "droite" : return JustificationValues.Right;
        case "gauche" : return JustificationValues.Left;
        default: return null;
    }
}

谢谢你的帮助!

解决方法

如果您将paragraphProperties应用于父单元而不是段落,它是否有效?
Table table = new Table();
TableRow tableHeader = new TableRow();
table.AppendChild<TableRow>(tableHeader);
TableCell tableCell = new TableCell();
tableHeader.AppendChild<TableCell>(tableCell);
ParagraphProperties paragraphProperties = new ParagraphProperties();
Paragraph paragraph = new Paragraph(new Run(new Text("test")));
JustificationValues? justification = GetJustificationFromString("centre");

// Use System.Nullable<T>.HasValue instead of the null check.
if (justification.HasValue)
{
    // Using System.Nullable<T>.Value to obtain the value and resolve a warning 
    // that occurs when using 'justification' by itself.
    paragraphProperties.AppendChild<Justification>(new Justification() { Val = justification.Value });
}

// append the paragraphProperties to the tableCell rather than the paragraph element
tableCell.AppendChild<ParagraphProperties>(paragraphProperties);
tableCell.AppendChild<Paragraph>(paragraph);
Console.WriteLine(table.OuterXml);

table.OuterXml之前:

<w:tbl xmlns:w="http://schemas.openxmlformats.org/wordprocessingml/2006/main">
  <w:tr>
    <w:tc>
      <w:p>
        <w:r>
          <w:t>test</w:t>
        </w:r>
        <w:pPr>
          <w:jc w:val="center" />
        </w:pPr>
      </w:p>
    </w:tc>
  </w:tr>
</w:tbl>

table.OuterXml之后:

<w:tbl xmlns:w="http://schemas.openxmlformats.org/wordprocessingml/2006/main">
    <w:tr>
    <w:tc>
        <w:pPr>
        <w:jc w:val="center" />
        </w:pPr>
        <w:p>
        <w:r>
            <w:t>test</w:t>
        </w:r>
        </w:p>
    </w:tc>
    </w:tr>
</w:tbl>

我是OpenXml的新手.结果是保存到word文档中还是用单词查看?

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读