Skip to content
ComPDF

表格

创建基本表格

csharp
// 方式 1: 创建指定列数的表格(等宽列)
CTable table = div.CreateTable(3);

// 方式 2: 创建指定列宽的表格(点单位)
float[] columnWidths = new float[] { 100, 150, 100 };
CTable table = div.CreateTable(columnWidths);

// 方式 3: 创建指定列宽的表格(支持百分比)
CUnitValue[] columnWidths = new CUnitValue[] {
    CUnitValue.CreatePercentValue(30),
    CUnitValue.CreatePercentValue(40),
    CUnitValue.CreatePercentValue(30)
};
CTable table = div.CreateTable(columnWidths);

// 使用全部可用宽度
table.UseAllAvailableWidth();

添加表格内容

csharp
// 开始新行
table.StartNewRow();

// 创建单元格
CCell cell1 = table.CreateCell();
cell1.CreateText("单元格 1");

CCell cell2 = table.CreateCell();
cell2.CreateText("单元格 2");

// 创建跨行跨列的单元格
CCell cell3 = table.CreateCell(rowspan: 2, colspan: 2);
cell3.CreateText("跨 2 行 2 列");

表格表头和表尾

csharp
// 创建表头
table.StartNewHeaderRow();
CCell headerCell1 = table.CreateHeaderCell();
headerCell1.CreateText("列 1");
CCell headerCell2 = table.CreateHeaderCell();
headerCell2.CreateText("列 2");

// 创建表尾
table.StartNewFooterRow();
CCell footerCell1 = table.CreateFooterCell();
footerCell1.CreateText("合计");
CCell footerCell2 = table.CreateFooterCell();
footerCell2.CreateText("1000");

// 创建表格标题
CDiv caption = table.CreateCaption();
caption.CreateText("销售数据表");

设置表格样式

csharp
// 设置边框折叠模式
table.SetBorderCollapse(CBorderCollapsePropertyValue.Collapse);

// 设置边框间距(仅在 Separate 模式下有效)
table.SetBorderCollapse(CBorderCollapsePropertyValue.Separate);
table.SetHorizontalBorderSpacing(5f);
table.SetVerticalBorderSpacing(5f);

// 设置单元格边框
using (CBorder border = new CBorder(1f))
{
    border.SetType(CBorderType.Solid);
    border.SetColor(CColor.Black);
    cell.SetBorder(border);
}

// 设置单元格背景色
cell.SetBackgroundColor(new CColor(240, 240, 240, 255));

// 设置单元格对齐
cell.SetTextAlignment(CTextAlignment.Center);
cell.SetVerticalAlignment(CVerticalAlignment.Middle);