Open XML(Microsoft Word):C#表格对齐

时间:2012-12-06 20:53:00

标签: c# ms-word openxml


如何在打开的xml中将我的表格放在word文档的中间?
这是我的代码,我想在中间对齐表格。

这是我的代码。我试图使用TableJustification,但它似乎无法正常工作

using (WordprocessingDocument wordDoc = WordprocessingDocument.Create(filepath, WordprocessingDocumentType.Document))
            {
                MainDocumentPart mainPart = wordDoc.AddMainDocumentPart();
                mainPart.Document = new Document();
                Body body = mainPart.Document.AppendChild(new Body());

                Run run = new Run();
                // Goes through all of the forms
                foreach (var form in forms)
                {

                    Table table = new Table();
                    // Initialize all of the table properties
                    TableProperties tblProp = new TableProperties(
                        new TableBorders(
                            new TopBorder() { Val = new EnumValue<BorderValues>(BorderValues.BasicBlackSquares), Size = 16 },
                            new LeftBorder() { Val = new EnumValue<BorderValues>(BorderValues.BasicBlackSquares), Size = 16 },
                            new RightBorder() { Val = new EnumValue<BorderValues>(BorderValues.BasicBlackSquares), Size = 16 },
                            new BottomBorder() { Val = new EnumValue<BorderValues>(BorderValues.BasicBlackSquares), Size = 16 }
                        )

                    );

                    // Align the table to the center
                    TableJustification justs_center = new TableJustification() { Val = _____  };

                    table.AppendChild(justs_center);
                    table.AppendChild<TableProperties>(tblProp);

                    Paragraph para = body.AppendChild(new Paragraph());
                    Run run_header = para.AppendChild(new Run());
                    RunProperties runProps = run_header.AppendChild(new RunProperties(new Bold()));


                    string username = form.Username;
                    string proces_header = form.HeaderTitle;

                    run_header.AppendChild(new Text(proces_header + " | " + username));

                    for (int i = 0; i < form.FieldList.Count; i++)
                    {
                        if (!(form.FieldList[i].Token == "USR" || form.FieldList[i].Token == "SNT"))
                        {
                            TableRow tr = new TableRow();

                            TableCell header_cell = new TableCell();

                            header_cell.Append(new Paragraph(new Run(new Text(form.FieldList[i].Label + ": " + form.FieldList[i].Value))));

                            tr.Append(header_cell);
                            table.Append(tr);
                        }
                    }
                    wordDoc.MainDocumentPart.Document.Body.Append(table);

                }

                mainPart.Document.Save();
                wordDoc.Close();
                return "Success";
            }
        }

3 个答案:

答案 0 :(得分:3)

Table t = new Table(
    new TableProperties(
        ...
        new TableJustification() { Val =  TableRowAlignmentValues.Center},
        ...),
    new TableRow(...),
);

答案 1 :(得分:0)

尝试使用接受的答案将表格置于中心位置似乎不起作用。我需要将中心对齐应用于所有行

<div id="textBoxFirebase">
    <form>
    Firebase Data<br>
    <textarea rows="4" cols="50" id="textAreaFirebase"></textarea>
    </form>
  </div>

使用Open XML Productivity Tool

找到

答案 2 :(得分:0)

实际上,您只需要将居中对齐应用于 TableRowProperties 中的所有行。即使您不在 TableProperties 中应用对齐方式,表格仍将居中。如果有人知道,我很想知道在 TableRowProperties 中进行论证的目的是什么。