1

私はデータシートの作成を含むプロジェクトに取り組んでいます。MSDN から提供されたコードに従って docx ファイルにテーブルを作成できましたが、作成したテーブルにスタイル (境界線をなし、シェーディング、セル幅など) を適用しようとすると、追加されません。 .

したがって、使用してからtable.RemoveAllChildrennew を追加する必要があると思いますstyle。しかし、そうすると、テーブル全体が削除されるため、テーブルを再作成する必要があります。もっと良い方法があるはずです。お知らせ下さい。

以下は、1 つのセル テーブルを含むサンプル コード iIhave です。ダークブルーの陰影、テーブルの境界線を削除し、セル幅を設定し、テキストを変更しようとしています。

  public void docHeaderTableVal(string FileLocation, string replacingVal, int tableNum, int rowNum, int cellNum) //replace a value
    {
        try
        {
            using (var doc = WordprocessingDocument.Open(FileLocation, true))
            {
                // Find the first table in the document.
                Table table =
                    doc.MainDocumentPart.Document.Body.Elements<Table>().ElementAt(tableNum);

                 TableProperties props = new TableProperties(
                    new TableBorders(
                        new TopBorder
                        {
                            Val = new EnumValue<BorderValues>(BorderValues.None),
                            //Size = 10
                        },
                        new BottomBorder
                        {
                            Val = new EnumValue<BorderValues>(BorderValues.None),
                            //Size = 10
                        },
                        new LeftBorder
                        {
                            Val = new EnumValue<BorderValues>(BorderValues.None),
                            //Size = 10
                        },
                        new RightBorder
                        {
                            Val = new EnumValue<BorderValues>(BorderValues.None),
                            //Size = 10
                        },
                        new InsideHorizontalBorder
                        {
                            Val = new EnumValue<BorderValues>(BorderValues.None),
                            //Size = 10
                        },
                        new InsideVerticalBorder
                        {
                            Val = new EnumValue<BorderValues>(BorderValues.None),
                            //Size = 10

                        }
                        )
                    );

                 table.AppendChild<TableProperties>(props);

                TableRow row = table.Elements<TableRow>().ElementAt(rowNum);


                TableCell cell = row.Elements<TableCell>().ElementAt(cellNum);

                cell.RemoveAllChildren();

                //cell.TableCellProperties.TableCellWidth.Width = "2500";



                //finding first run and its first text then replace with passed-in text.
                Paragraph p = new Paragraph() { RsidParagraphAddition = "004F7104", RsidParagraphProperties = "008F2986", RsidRunAdditionDefault = "004F7104" };
                ParagraphProperties pPr = new ParagraphProperties();
                Justification just1 = new Justification() { Val = JustificationValues.Center };
                pPr.Append(just1);
                Run r = new Run();
                RunProperties rProp = new RunProperties(); //making an instance of run property
                RunFonts rFont = new RunFonts();
                FontSize size = new FontSize();
                Color color = new Color() { Val = "#FFFFFF"};
                Bold bld = new Bold();
                Italic italic = new Italic();
                rFont.Ascii = "Arial Black";

                size.Val = new StringValue("32");
                rProp.Append(rFont, size, color, bld, italic);
                r.PrependChild<RunProperties>(rProp);


                Text t = new Text(replacingVal);
                r.Append(t);
                p.Append(pPr);
                p.Append(r);


                //back ground shading for the title cell;

                cell.AppendChild(new TableCellProperties(new Shading { Val = ShadingPatternValues.Clear, Color = "auto", Fill = "##17365d" }));

                cell.Append(p);


            }
        }
        catch
        {
            MessageBox.Show("Can not replace table value due to file open error.");
        }

}
4

0 に答える 0