【问题标题】:Open XML table cell font, width打开 XML 表格单元格字体、宽度
【发布时间】:2013-10-08 14:45:23
【问题描述】:

如何将表格(参见下面的代码)插入到 word 文件的特定位置(该位置是段落的文本)。 那你可以设置表格单元格的字体和宽度吗?

Dim table As New Table()
Dim tblBorders As New TableBorders()
tblBorders.TopBorder = New TopBorder()
tblBorders.TopBorder.Val = New EnumValue(Of BorderValues)(BorderValues.[Single])
tblBorders.BottomBorder = New BottomBorder()
tblBorders.BottomBorder.Val = New EnumValue(Of BorderValues)(BorderValues.[Single])
tblBorders.LeftBorder = New LeftBorder()
tblBorders.LeftBorder.Val = New EnumValue(Of BorderValues)(BorderValues.[Single])
tblBorders.RightBorder = New RightBorder()
tblBorders.RightBorder.Val = New EnumValue(Of BorderValues)(BorderValues.[Single])
tblBorders.InsideHorizontalBorder = New InsideHorizontalBorder()
tblBorders.InsideHorizontalBorder.Val = BorderValues.[Single]
tblBorders.InsideVerticalBorder = New InsideVerticalBorder()
tblBorders.InsideVerticalBorder.Val = BorderValues.[Single]
tblPr.Append(tblBorders)
table.Append(tblPr)
trnew = New TableRow()
tc = New TableCell(New Paragraph(New Run(New Text("A"))))
trnew.Append(tc)
tc = New TableCell(New Paragraph(New Run(New Text("B"))))
trnew.Append(tc)
tc = New TableCell(New Paragraph(New Run(New Text("C"))))
Dim tcp As New TableCellProperties()
Dim gridSpan As New GridSpan()
gridSpan.Val = 4
tcp.Append(gridSpan)
tc.Append(tcp)
trnew.Append(tc)
tc = New TableCell(New Paragraph(New Run(New Text("D"))))
trnew.Append(tc)
table.Append(trnew)

谢谢!

【问题讨论】:

  • 我想我已经完全解决了你的问题,除了它是在 C# 中。我不确定 VB 语法

标签: asp.net vb.net ms-word openxml-sdk


【解决方案1】:

访问文档正文,向下解析正文并插入表格

C#代码如下

        //Body is a class in DocumentFormat.OpenXml.Wordprocessing.Body
        // and document part in DocumentFormat.OpenXml.Packaging.MainDocumentPart
        Body body = doc.MainDocumentPart.Document.Body;

        //Traverse the complete document body paragraph by paragraph
        foreach (Paragraph para in body.Descendants<Paragraph>())
        {
           if(para.InnerText.Contains("text the identifies this para")
           {
               para.InserAfterSelf(Table)
           }               
        }

如果对docx格式不是很了解,请使用openxml生产力工具 对于开放 xml 版本 2.5 http://download.microsoft.com/download/5/5/3/553C731E-9333-40FB-ADE3-E02DC9643B31/OpenXMLSDKToolV25.msi

对于 2.0 版http://download.microsoft.com/download/2/7/F/27FF6744-D970-4FFB-90B8-5226B2B82E0A/OpenXMLSDKTool.msi

我自己没有使用过 openxml 中的表格,但是,在我看来,您必须像在 tc = New TableCell(New Paragraph(New Run(New Text("A")))) 中一样创建运行,然后添加要运行的属性,然后将运行添加到段落中,然后再添加到细胞 - 见链接 Format Font Inside Table OpenXML C#

【讨论】:

  • tnks!如何设置单元格的字体和大小?
  • 单独创建运行并格式化运行请参阅上面的更新答案,请投票给答案:)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-04-26
  • 1970-01-01
  • 1970-01-01
  • 2011-05-10
  • 2011-03-03
相关资源
最近更新 更多