NPIOがwordでテーブルを生成する関連設定

7743 ワード

プロジェクトをする時NPIOでwordの中の表を操作しなければならなくて、しかし多くの資料を調べてすべて1つの完全な例がなくて、最後に私は多くの資料を整理して、1段の本人が比較的に完備していると思っている表に対する関連操作を整理しました.表の作成、表の幅の設定、表の中心の設定、セルの幅の設定、セルの中の文字の中心の設定など、このコードをここに書いて、皆さんの役に立つことを願っています.
XWPFDocument doc = new XWPFDocument();
                                XWPFParagraph paragraph = doc.CreateParagraph();

                                //      
                                XWPFRun run = paragraph.CreateRun();
                                run.FontFamily = "  ";
                                run.FontSize = 18;
                                run.SetBold(true);
                                run.SetText("word    ");

                                //   
                                XWPFTable table = doc.CreateTable(1, 6);//          
                                CT_Tbl ctTbl = doc.Document.body.GetTblArray()[0];

                                //       
                                ctTbl.AddNewTblPr().jc = new CT_Jc();
                                ctTbl.AddNewTblPr().jc.val = ST_Jc.center;
                                
                                //     
                                ctTbl.AddNewTblPr().AddNewTblW().w = "8000";
                                ctTbl.AddNewTblPr().AddNewTblW().type = ST_TblWidth.dxa;

                                #region //            
                                CT_TcPr ctTcPr = table.GetRow(0).GetCell(0).GetCTTc().AddNewTcPr();
                                ctTcPr.tcW = new CT_TblWidth();
                                ctTcPr.tcW.w = "2800";//    
                                ctTcPr.tcW.type = ST_TblWidth.dxa;
                                CT_VerticalJc va = ctTcPr.AddNewVAlign();
                                va.val = ST_VerticalJc.center;//    
                                table.GetRow(0).GetCell(0).GetCTTc().GetPList()[0].AddNewPPr().AddNewJc().val = ST_Jc.center;//    
                                
                                ctTcPr = table.GetRow(0).GetCell(1).GetCTTc().AddNewTcPr();
                                ctTcPr.tcW = new CT_TblWidth();
                                ctTcPr.tcW.w = "1200";//    
                                ctTcPr.tcW.type = ST_TblWidth.dxa;
                                va = ctTcPr.AddNewVAlign();
                                va.val = ST_VerticalJc.center;//    
                                table.GetRow(0).GetCell(1).GetCTTc().GetPList()[0].AddNewPPr().AddNewJc().val = ST_Jc.center;//    
                                
                                ctTcPr = table.GetRow(0).GetCell(2).GetCTTc().AddNewTcPr();
                                ctTcPr.tcW = new CT_TblWidth();
                                ctTcPr.tcW.w = "1000";//    
                                ctTcPr.tcW.type = ST_TblWidth.dxa;
                                va = ctTcPr.AddNewVAlign();
                                va.val = ST_VerticalJc.center;//    
                                table.GetRow(0).GetCell(2).GetCTTc().GetPList()[0].AddNewPPr().AddNewJc().val = ST_Jc.center;//    
                                
                                ctTcPr = table.GetRow(0).GetCell(3).GetCTTc().AddNewTcPr();
                                ctTcPr.tcW = new CT_TblWidth();
                                ctTcPr.tcW.w = "1000";//    
                                ctTcPr.tcW.type = ST_TblWidth.dxa;
                                va = ctTcPr.AddNewVAlign();
                                va.val = ST_VerticalJc.center;//    
                                table.GetRow(0).GetCell(3).GetCTTc().GetPList()[0].AddNewPPr().AddNewJc().val = ST_Jc.center;//    
                                
                                ctTcPr = table.GetRow(0).GetCell(4).GetCTTc().AddNewTcPr();
                                ctTcPr.tcW = new CT_TblWidth();
                                ctTcPr.tcW.w = "1500";//    
                                ctTcPr.tcW.type = ST_TblWidth.dxa;
                                va = ctTcPr.AddNewVAlign();
                                va.val = ST_VerticalJc.center;//    
                                table.GetRow(0).GetCell(4).GetCTTc().GetPList()[0].AddNewPPr().AddNewJc().val = ST_Jc.center;//    
                                
                                ctTcPr = table.GetRow(0).GetCell(5).GetCTTc().AddNewTcPr();
                                ctTcPr.tcW = new CT_TblWidth();
                                ctTcPr.tcW.w = "2500";//    
                                ctTcPr.tcW.type = ST_TblWidth.dxa;
                                va = ctTcPr.AddNewVAlign();
                                va.val = ST_VerticalJc.center;//    
                                table.GetRow(0).GetCell(5).GetCTTc().GetPList()[0].AddNewPPr().AddNewJc().val = ST_Jc.center;//    
                                
                                #endregion

                                XWPFTableRow headRow = table.GetRow(0);

                                XWPFTableCell headCell = null;

                                headCell = headRow.GetCell(0);
                                headCell.SetText("  ");

                                headCell = headRow.GetCell(1);
                                headCell.SetText("  ");

                                headCell = headRow.GetCell(2);
                                headCell.SetText(" ");

                                headCell = headRow.GetCell(3);
                                headCell.SetText(" ");

                                headCell = headRow.GetCell(4);
                                headCell.SetText("  2");

                                headCell = headRow.GetCell(5);
                                headCell.SetText("   ");

                                int rowCount = 1;
                                //     ,     
                                foreach (DataRow dr in dt.Rows)
                                {
                                    XWPFTableRow row = null;
                                    
                                    string checkPeo ="100%";                                        

                                    row = table.CreateRow();

                                    table.GetRow(rowCount).GetCell(0).GetCTTc().GetPList()[0].AddNewPPr().AddNewJc().val = ST_Jc.center;//    
                                    table.GetRow(rowCount).GetCell(1).GetCTTc().GetPList()[0].AddNewPPr().AddNewJc().val = ST_Jc.center;//    
                                    table.GetRow(rowCount).GetCell(2).GetCTTc().GetPList()[0].AddNewPPr().AddNewJc().val = ST_Jc.center;//    
                                    table.GetRow(rowCount).GetCell(3).GetCTTc().GetPList()[0].AddNewPPr().AddNewJc().val = ST_Jc.center;//    
                                    table.GetRow(rowCount).GetCell(4).GetCTTc().GetPList()[0].AddNewPPr().AddNewJc().val = ST_Jc.center;//    
                                    table.GetRow(rowCount).GetCell(5).GetCTTc().GetPList()[0].AddNewPPr().AddNewJc().val = ST_Jc.center;//    

                                    row.GetCell(0).SetText(dr[0].ToString());
                                    row.GetCell(1).SetText(dr[1].ToString());
                                    row.GetCell(2).SetText(dr[2].ToString());
                                    row.GetCell(3).SetText(dr[3].ToString());
                                    row.GetCell(4).SetText(dr[4].ToString());
                                    row.GetCell(5).SetText(checkPeo);

                                    rowCount++;
                                }