【问题标题】:Insert text into Table in a word processing document (Open XML )将文本插入文字处理文档中的表格 (Open XML )
【发布时间】:2020-12-11 13:56:04
【问题描述】:

我有带有页眉和页脚部分的文档文件。在页脚部分,我有一张桌子。

所以现在我正在尝试将文本插入表格单元格。但是每当我尝试通过此代码执行此操作时,它都会附加段落类型并更改表格的高度和重量。

  using (WordprocessingDocument wordDoc = WordprocessingDocument.Open(ORiFilepath, true))
        {
         var docPart = wordDoc.MainDocumentPart;
            MainDocumentPart mainPart = wordDoc.MainDocumentPart;
            if (docPart.FooterParts.Count() > 0)
            {
                //List<Table> table = docPart.FooterParts..Elements<Table>().ToList();
                foreach (FooterPart footer in docPart.FooterParts)
                {
                    List<Table> table = footer.Footer.Elements<Table>().ToList();
                    if (table.Count > 0)
                    {
                        var footertable = table[0];
                        TableRow row1 = footertable.Elements<TableRow>().ElementAt(1);
                        string text1 = cell1.InnerText;
                        if (text1 == "")
                        {
                            cell1.Append(new Paragraph(new Run(new Text("TEXT"))));
                           
                        }
                    }
                }
            }
        }

我可以在单元格中插入文本吗

cell1.Append(new Paragraph(new Run(new Text("TEXT"))));,

或者方法应该是什么?

【问题讨论】:

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


    【解决方案1】:

    这是我用来向单元格添加文本的方法。希望有用。

    CreateCellProperties CreateParagraph 方法只是封装了 OpenXML SDK 中的相应对象(TableCellPropertiesParagraphProperties),您实际上并不需要编写文本。

    如果您还有问题,请告诉我:

             public TableCell CreateCell(Shading shading, int width, int gridSpan, 
                TableCellBorders borders, TableVerticalAlignmentValues valign,
                JustificationValues justification, Color color, string text, 
                VericalMergeOptions mergeOptions)
    
            {
                // Set up Table Cell and format it.
                TableCell cell = new TableCell();
                
    
                TableCellProperties cellProperties = CreateCellProperties(shading, width, gridSpan, borders, valign, mergeOptions);
                ParagraphProperties props = CreateParagraphProperties(justification, color);
                
                // Set cell and paragraph
                Run run = CreateRun(color, text);
                Paragraph paragraph = new Paragraph(new List<OpenXmlElement>
                {
                    props,
                    run
                });
    
                // Append the run and the properties
                cell.Append(new List<OpenXmlElement>
                {
                    cellProperties,
                    paragraph
                });
                return cell;
            }
    
            protected Run CreateRun(Color color, string text = "")
            {
    
                Run run = new Run(new List<OpenXmlElement>{
                    new RunProperties(color.CloneNode(true)),
                });
    
                if (text != "") run.Append(new Text(text));
    
                return run;
            }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-09-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多