1. 制作表格时,经常遇到不同行所包含的列数不一样的情况,要想给每个单元格固定宽度,首先我们算出来表格最终的行数N,然后初始化表格为N行1列,然后使用 拆分单元格 的方式来制作每一行每一个单元格,并且设置单元格的 宽度。
2. 另一个方法是添加行的方式,再拆分,但是这种方式不好控制宽度,欢迎大神们提供思路
3.由于免费版spire.doc 限制表格列数为62,因此,可以初始化表格为60列左右,然后合并列的方式控制单元格宽度会比较精细了
//添加一个4 x 4的表格到section
Table table = s.AddTable(true);
table.ResetCells(3, 60);
//固定列宽
table.AutoFit(AutoFitBehaviorType.FixedColumnWidths);
//自适应内容
//table.AutoFit(AutoFitBehaviorType.AutoFitToContents);
table.ApplyHorizontalMerge(0, 0, 14);
table.ApplyHorizontalMerge(0, 15, 29);
table.ApplyHorizontalMerge(0, 30, 39);
table.ApplyHorizontalMerge(0, 40, 59);
table.Rows[0].Cells[0].AddParagraph().AppendText("aaa");
table.Rows[0].Cells[15].AddParagraph().AppendText("bbb");
table.Rows[0].Cells[30].AddParagraph().AppendText("ccc");
table.Rows[0].Cells[40].AddParagraph().AppendText("ddd");
table.ApplyHorizontalMerge(1, 0, 19);
table.ApplyHorizontalMerge(1, 20, 44);
table.ApplyHorizontalMerge(1, 45, 59);
table.Rows[1].Cells[0].AddParagraph().AppendText("aaa");
table.Rows[1].Cells[20].AddParagraph().AppendText("bbb");
table.Rows[1].Cells[45].AddParagraph().AppendText("ccc");
table.ApplyHorizontalMerge(2, 0, 59);