sales@e-iceblue.com    |    028-81705109    |    2181348176    |    冰蓝科技    |    EN-US

C# 创建 PDF 表格

Spire.PDF提供了两种类PdfTable和PdfGrid用于创建PDF表格,二者在对表格进行格式化操作时存在以下差别:

 
PdfTable
PdfGrid
格式设置
无API支持,可以通过事件设置 可直接通过API设置
可直接通过API设置(StringFormat) 可直接通过API设置(StringFormat)
单元格 无API支持,可以通过事件设置 可直接通过API设置
其他
单元格纵向合并 不支持 可直接通过API设置
单元格横向合并 无API支持,可以通过事件设置 可直接通过API设置
嵌套表格 无API支持,可以通过事件设置 可直接通过API设置
事件 BeginCellLayout, BeginPageLayout, BeginRowLayout, EndCellLayout, EndPageLayout, EndRowLayout BeginPageLayout, EndPageLayout

通过 PdfTable 类创建表格

static void Main(string[] args)
{
    //创建一个PDF文档
    PdfDocument doc = new PdfDocument();

    //添加一页
    PdfPageBase page = doc.Pages.Add();

    //创建一个PdfTable对象
    PdfTable table = new PdfTable();

    //设置字体
    table.Style.DefaultStyle.Font = new PdfTrueTypeFont(new Font("Arial Unicode MS", 9f), true);
    table.Style.HeaderStyle.Font = new PdfTrueTypeFont(new Font("Arial Unicode MS", 9f), true);

    //创建一个DataTable并写入数据
    DataTable dataTable = new DataTable();
    dataTable.Columns.Add("名字");
    dataTable.Columns.Add("年龄");
    dataTable.Columns.Add("性别");
    dataTable.Rows.Add(new string[] { "张红", "22", "女" });
    dataTable.Rows.Add(new string[] { "王东", "25", "男" });

    //填充数据到PDF表格
    table.DataSource = dataTable;

    //显示表头(默认不显示)
    table.Style.ShowHeader = true;

    //在BeginRowLayout事件处理方法中注册自定义事件
    table.BeginRowLayout += Table_BeginRowLayout;


    //将表格绘入PDF并指定位置和大小
    table.Draw(page, new RectangleF(0, 20, 200, 90));

    //保存到文档
    doc.SaveToFile("PDF表格_1.pdf");
}

//在自定义事件中设置行高
private static void Table_BeginRowLayout(object sender, BeginRowLayoutEventArgs args)
{
    args.MinimalHeight = 20f;
}

C# 创建 PDF 表格


通过 PdfGrid 创建表格

创建一个简单的表格

//创建一个PDF文档
PdfDocument doc = new PdfDocument();

//添加一页
PdfPageBase page = doc.Pages.Add();

//创建一个PdfGrid对象
PdfGrid grid = new PdfGrid();

//设置单元格边距
grid.Style.CellPadding = new PdfPaddings(1, 1, 1, 1);

//添加2行4列
PdfGridRow row1 = grid.Rows.Add();
PdfGridRow row2 = grid.Rows.Add();
grid.Columns.Add(4);

//设置列宽
foreach (PdfGridColumn col in grid.Columns)
{
    col.Width = 60f;
}

//写入数据
for (int i = 0; i < grid.Columns.Count; i++)
{
    row1.Cells[i].Value = String.Format("col{0}", i + 1);
    row2.Cells[i].Value = String.Format("{0}", i + 1);
}

//将表格绘入文档
grid.Draw(page, new PointF(0, 20));

//保存到文档
doc.SaveToFile("PDF表格_2.pdf");

C# 创建 PDF 表格


合并单元格,设置背景色和文字对齐方式

//创建PDF文档
PdfDocument doc = new PdfDocument();

//添加一页
PdfPageBase page = doc.Pages.Add();

//创建一个PdfGrid对象
PdfGrid grid = new PdfGrid();

//设置单元格边距
grid.Style.CellPadding = new PdfPaddings(1, 1, 1, 1);

//设置表格默认字体
grid.Style.Font= new PdfTrueTypeFont(new Font("Arial Unicode MS", 9f), true);

//添加4行4列
PdfGridRow row1 = grid.Rows.Add();
PdfGridRow row2 = grid.Rows.Add();
PdfGridRow row3 = grid.Rows.Add();
PdfGridRow row4 = grid.Rows.Add();
grid.Columns.Add(4);

//设置列宽
foreach (PdfGridColumn col in grid.Columns)
{
    col.Width = 60f;
}

//写入数据
row1.Cells[0].Value = "订单及支付情况";
row2.Cells[0].Value = "订单号";
row2.Cells[1].Value = "日期";
row2.Cells[2].Value = "客户";
row2.Cells[3].Value = "是否付款";
row3.Cells[0].Value = "00223";
row3.Cells[1].Value = "2016/06/02";
row3.Cells[2].Value = "阳光地产";
row3.Cells[3].Value = "是";
row4.Cells[0].Value = "00224";
row4.Cells[1].Value = "2016/06/03";
row4.Cells[3].Value = "否";

//水平和垂直合并单元格
row1.Cells[0].ColumnSpan = 4;
row3.Cells[2].RowSpan = 2;

//设置单元格内文字对齐方式
row1.Cells[0].StringFormat = new PdfStringFormat(PdfTextAlignment.Center);
row3.Cells[2].StringFormat = new PdfStringFormat(PdfTextAlignment.Justify, PdfVerticalAlignment.Middle);

//设置单元格背景颜色
row1.Cells[0].Style.BackgroundBrush = PdfBrushes.Gray;
row3.Cells[3].Style.BackgroundBrush = PdfBrushes.Green;
row4.Cells[3].Style.BackgroundBrush = PdfBrushes.MediumVioletRed;

//设置边框颜色、粗细
PdfBorders borders = new PdfBorders();
borders.All = new PdfPen(Color.Black, 0.1f);
foreach (PdfGridRow pgr in grid.Rows)
{
    foreach (PdfGridCell pgc in pgr.Cells)
    {
        pgc.Style.Borders = borders;
    }
}

//在指定为绘入表格
grid.Draw(page, new PointF(0, 20));

//保存到文档
doc.SaveToFile("PDF表格_3.pdf");

C# 创建 PDF 表格

Spire.Doc
C# 添加 Word 超链接
C# 插入、计数、检索和删除 Word 文档变量
C# 如何在 Word 中插入分页符和分节符
C# 如何在 Word 中插入和删除文本框
C# 添加形状和形状组合到 Word 文档
C# 如何插入图片到 Word 以及提取 Word 中的图片
C# 给 Word 文档添加内容控件
如何合并 Word 文档
C# Word 文档保护
创建 Word 文档
启用 Word 修订功能,接受和拒绝修订
C# 操作 Word 批注功能
Spire.Doc 转换功能详述
使用 C# 为 Word 文档添加脚注尾注
C# 为 Word 文档添加页眉,页脚和页码
C# 为 Word 文档添加文本和图片水印
添加和获取 Word 文档摘要及属性
C# Word 查找和替换功能
C# 创建 Word 表格
使用 C# 添加 Word 域
C# 添加,替换和删除 Word 书签
C# 合并与拆分 Word 表格中的单元格
C# Word 图片替换
C# 根据分节符和分页符拆分 Word 文档
C# 给 Word 文档设置背景颜色和背景图片
C# 在 Word 中创建文本框
C# 设置纸张大小以及页边距
C# 在 Word 中插入下拉列表控件、文本控件、图片控件等
C# 在 Word 中创建项目符号列表、多级编号列表
C# 插入表格到 Word 文本框以及获取和删除 Word 文本框中的表格
C# Word 中添加和删除特殊符号
C# 创建 Word 邮件合并模板并合并文本和图片
C# 打印 Word 文档
C# Word 中添加、修改和提取 OLE
C# Word 中设置文字效果
C# Word 添加分栏、分割线
C# 在 Word 中插入上下标
C# 设置 Word 表格的格式
C# 操作 Word 表格行和列
C# 创建 Word 艺术字
C# 删除 Word 超链接
Spire.DocViewer
如何添加 Spire.DocViewer 控件到 Toolbox
Spire.XLS
C# Excel 插入和删除分页符
C# 给 Excel 工作表添加水印
C# 图表中隐藏和空单元格的设置
给 Excel 表格添加超链接
C# 复制 Excel 工作表
使用 Spire.XLS 创建 Excel 图表
C# 设置 Excel 数据验证/数据有效性
Excel 查找替换高亮显示数据
C# 显示和隐藏 Excel 工作表及工作表中的行与列
C# 添加修改及删除 Excel 批注
如何使用 C# 打印 Excel 文档
使用 C# 将 Excel 工作薄和 Excel 工作表保存为 PDF 格式
C# Excel 图片添加、提取和删除
C# Excel 文档保护
合并/取消合并 Excel 单元格
C# 创建 Excel 文件
如何设置和获取 Excel 工作薄摘要及自定义属性
C# 设置 Excel 页眉页脚
C# Excel 数据分组和取消分组
C# 创建、读取 Excel 公式
C# Excel 字体设置
C# 如何在 Excel 中设置条件格式
C# Excel 工作表和 Excel 图表保存为图片
C# Excel 冻结窗格
C# 设置 Excel 图片大小和位置
C# 给 Excel 文档设置背景颜色和背景图片
C# 设置现有 Excel 图表的数据标签样式
C# 展开和折叠 Excel 分组
C# 重命名 Excel 工作表和设置工作表标签颜色
C# 如何合并 Excel 文档
C# Excel 插入图形
C# 将 Excel 文件转换为 HTML 格式
C# 转换 CSV 到 Excel、PDF、Datatable
C# Excel 创建多级分组
C# 设置 Excel 工作表视图模式和显示比例
C# Excel 单元格锁定和取消锁定
C# Excel 导入导出数据
C# 设置 Excel 中数字格式
C# Excel 自定义数据标签
C# 设置 Excel 中边框(网格线)样式
C# Excel 插入和删除表单控件
C# 添加、修改和删除 Excel 迷你图
Spire.Presentation
C# 给 PPT 文档添加水印
Spire.Presentation 保护 PPT 文档
C# 创建 PowerPoint 文档
C# PowerPoint 文档转换成图片、PDF、SVG 等格式文件
C# 如何提取 PowerPoint 文档中的文本和图片
C# 创建、删除、操作 PowerPoint 表格
C# 如何添加、删除 PowerPoint 图形
C# 创建 PowerPoint 图表
C# Presentation 文本替换
C# 隐藏和取消隐藏幻灯片
C# 添加、编辑、提取和删除 PowerPoint 批注
C# PPT 插入和提取视频
C# PPT 添加、修改超链接
C# 创建 PowerPoint 堆积图
C# 设置和获取 PowerPoint 文档属性
C# 添加和获取 PowerPoint 备注
C# 添加或删除 PowerPoint 段落和设置段落样式
C# 幻灯片插入 SmartArt 图形
C# 设置 PPT 表格中文字的对齐方式
C# PowerPoint 添加页脚、页码
C# 更改 PPT 中文字方向
C# 打印 PowerPoint 文档
C# 给 PowerPoint 文档设置背景颜色和背景图片
C# 创建幻灯片编号列表和项目符号列表
C# 设置 PowerPoint 中文字透明度
C# PowerPoint 分离饼状图
Spire.PDF
C# 添加、获取及删除 PDF 附件
C# 给 PDF 文档添加背景颜色和背景图片
C# PDF 转 Word、Image、XPS
C# PDF 图片添加、删除和替换
C# 压缩 PDF 文档
C# 创建 PDF 文档
C# 何如提取 PDF 文档中的文本和图片
合并与拆分 PDF 文档
C# PDF 添加页眉页脚
C# 给 PDF 文档添加水印
打印 PDF 文档
C# PDF 数字签名
C# PDF 字体设置
C# 操作 FDF 和 XFDF 文件
C# 创建 PDF 表单域
C# PDF 文档保护与取消保护
C# 将 PDF 表单域设置为只读
C# 创建 PDF 表格
如何使用 C# 在 PDF 中绘制图形
C# 添加或删除 PDF 页面,调整页面顺序
C# PDF 添加注释和标记
C# 添加、修改和删除 PDF 书签
C# 如何删除 PDF 表单域
C# PDF 设置页边距和页面大小
C# PDF 查找和高亮显示文本
C# 添加和删除 PDF 图层
C# 添加、获取和删除 PDF 自定义文档属性
C# 打印 PDF 文档的多页到一页和一页到多页
C# 创建 PDF 项目符号列表和多级编号列表
C# 固定 PDF 文本框中文字的大小和颜色
C# 给 PDF 文档添加超链接
C# 用 JavaScript 设置和验证 PDF 文本域格式
C# 给 PDF 文档添加动作
C# PDF 文档加密和解密
Spire.PDFViewer
Spire.DataExport
Spire.BarCode for .NET
Licensing
如何应用 License
License Agreement
Spire.BarCode for JAVA
如何使用 Spire.Barcode for Java 生成条形码
使用 Spire.Barcode for Java 识别条形码
Spire.Email
C# 如何群发邮件
C# 如何接收和保存邮件
C# 创建、重命名、删除邮箱文件夹
C# 添加、提取、删除邮件附件