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