Skip to content
ComPDF

表格

创建基本表格

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

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

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

// 使用全部可用宽度
table2.useAllAvailableWidth();

添加表格内容

java
// 开始新行
table.startNewRow();

// 创建单元格
CCell cell1 = table.createCell(1, 1);
cell1.createTextElement("单元格 1");
           

CCell cell2 = table.createCell(1,1);
cell2.createTextElement("单元格 2");

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

表格表头和表尾

java
// 创建表头
table.startNewHeaderRow();
CCell headerCell1 = table.createHeaderCell(1,1);
headerCell1.createTextElement("列 1");
CCell headerCell2 = table.createHeaderCell(1,1);
headerCell2.createTextElement("列 2");

// 创建表尾
table.startNewFooterRow();
CCell footerCell1 = table.createFooterCell(1,1);
footerCell1.createTextElement("合计");
CCell footerCell2 = table.createFooterCell(1,1);
footerCell2.createTextElement("1000");

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

设置表格样式

java
// 设置边框折叠模式
table.setBorderCollapse(CBorderCollapseType.COLLAPSE);

// 设置边框间距(仅在 Separate 模式下有效)
table.setBorderCollapse(CBorderCollapseType.SEPARATE);
table.setHorizontalBorderSpacing(5f);
table.setVerticalBorderSpacing(5f);

// 设置单元格边框
CBorder border = new CBorder(CUnitValue.CreatePointValue(1),CBorder.CBorderType.SOLID, CColor.BLACK);
cell.setBorder(border);
            

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

// 设置单元格对齐
cell.setTextAlignment(CTextAlignment.CENTER);
cell.setVerticalAlignment(CVerticalAlignment.MIDDLE);