一、直接插入表格
private void InsertTable(DocumentBuilder builder, Document doc) { //表格列數 var cellcount = 4; //表格開始編輯 Table tables = builder.StartTable(); //表格行樣式 builder.RowFormat.Alignment = RowAlignment.Center; //表格邊框樣式 builder.CellFormat.Borders.LineStyle = LineStyle.Single; //單元格邊框顏色 builder.CellFormat.Borders.Color = Color.Black; builder.Font.Size = 10.5;//字體10.5磅 builder.Bold = true;//加粗 for (var i = 0; i < cellcount; i++) { //插入單元格 builder.InsertCell(); //單元格背景顏色 builder.CellFormat.Shading.BackgroundPatternColor = Color.LightYellow; //單元格內字體對齊方式 builder.ParagraphFormat.Alignment = ParagraphAlignment.Center; if (i == 0) { builder.Write("單元格1"); } else if (i == 1) { builder.Write("單元格2"); } else if (i == 2) { builder.Write("單元格3"); } else if (i == 3) { builder.Write("單元格4"); } }
//行編輯結束
builder.EndRow(); //表格結束編輯 builder.EndTable(); }
二、獲取模板表格
private void InsertTable(DocumentBuilder builder, Document doc) { builder.StartTable(); NodeCollection nodes = builder.Document.GetChildNodes(NodeType.Table, true); if (nodes.Count == 0) { return; } Table table = (Table)nodes[1];//獲取目標表格 CellCollection cellTmp = table.Rows[0].Cells;//單元格列 var cellcount = cellTmp.Count;//列數 Row row; for (var i = 0; i < cellcount; i++) { //插入單元格 builder.InsertCell(); if (i == 0) { builder.Write("單元格1"); } else if (i == 1) { builder.Write("單元格2"); } else if (i == 2) { builder.Write("單元格3"); } else if (i == 3) { builder.Write("單元格4"); } }
//行編輯結束 row = builder.EndRow(); table.AppendChild(row); //表格結束編輯 builder.EndTable(); }
二、設置表格單元格長度
builder.StartTable(); //插入由三個具有不同首選寬度的單元格組成的表行。 //插入一個絕對大小的單元格。 builder.InsertCell(); builder.CellFormat.PreferredWidth = PreferredWidth.FromPoints(40); builder.CellFormat.Shading.BackgroundPatternColor = Color.LightYellow; builder.Writeln("Cell at 40 points width"); //插入一個相對大小(百分比)的單元格。 builder.InsertCell(); builder.CellFormat.PreferredWidth = PreferredWidth.FromPercent(20); builder.CellFormat.Shading.BackgroundPatternColor = Color.LightBlue; builder.Writeln("Cell at 20% width"); //插入一個自動大小的單元格。 builder.InsertCell(); builder.CellFormat.PreferredWidth = PreferredWidth.Auto; builder.CellFormat.Shading.BackgroundPatternColor = Color.LightGreen; builder.Writeln("Cell automatically sized. The size of this cell is calculated from the table preferred width."); builder.Writeln("In this case the cell will fill up the rest of the available space."); builder.EndTable();
三、單元格合並行(builder.CellFormat.HorizontalMerge )
for (var i = 0; i < 4; i++) { builder.InsertCell(); if (i == 0) { builder.Write("單元格1");
//列合並開始 builder.CellFormat.HorizontalMerge = CellMerge.First; } else if (i > 1) {
//列合並 builder.CellFormat.HorizontalMerge = CellMerge.Previous; } }
builder.EndRow();
四、單元格合並列(builder.CellFormat.VerticalMerge)
for (var i = 0; i < 4; i++) { builder.InsertCell(); builder.CellFormat.HorizontalMerge = CellMerge.None; builder.CellFormat.VerticalMerge = CellMerge.None; if (i == 0) { builder.Write("單元格1"); } else if (i == 3) { //行合並開始 builder.CellFormat.VerticalMerge = CellMerge.First; builder.Write("單元格3"); } else if (i > 1) { builder.Write("單元格"); } } for (var i = 0; i < 4; i++) { builder.InsertCell(); if (i == 0) { builder.Write("單元格1"); } else if (i == 3) { //合並行 builder.CellFormat.VerticalMerge = CellMerge.Previous; } else if (i > 1) { builder.Write("單元格"); } }