NPIO在word中生成表格的相关设置

        做项目时要用NPIO操作word中的表格,但是查了好多资料都没有一个完整的例子,最后我将好多资料进行整理,整理了一段本人认为相对完善的对表格的相关操作。包括,创建表格,设置表格宽度,表格居中、设置单元格宽度、单元格里面的文字居中等,现将这段代码写在这里希望能帮到各位。

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++;
                                }

 

 

你可能感兴趣的:(ASP.NET)