itextpdf 表格生成与跨行跨列
itextpdf 表格跨行跨列操作
由于前段时间需要做需求接触pdf表格,表格需要跨行跨列操作,写了个工具类,代码如下:
static class PdfUtil {/*** 生成一个表格* @author hou_fx* @param total 总列数* @param textFont 字体* @param data 表格数据 X行 Y列* @param doc PDF文档对象* @throws DocumentException*/public static void TableBule(int total,Font textFont,List> data,Document doc) throws DocumentException{// 创建一个有N列的表格PdfPTable table = new PdfPTable(total);table.setPaddingTop(20);table.setSpacingAfter(20);table.setTotalWidth(530); //设置列宽// table.setTotalWidth(new float[]{ 100, 165, 100, 165 }); //设置列宽table.setLockedWidth(true); //锁定列宽PdfPCell cell;for (int i = 0; i < data.size(); i++) { //遍历数据行 每个数据行都是一个listIterator it = data.get(i).iterator();int count=0;while (it.hasNext()) { //遍历每行数据,每个数据都是一个单元格cell = new PdfPCell(new Phrase(it.next(), textFont));cell.setMinimumHeight(17); //设置单元格高度cell.setUseAscender(true); //设置可以居中//第一个单元格背景色if (count%2==0) {cell.setBackgroundColor(new BaseColor(231,230,230));}cell.setHorizontalAlignment(Element.ALIGN_LEFT); //左对齐cell.setVerticalAlignment(Element.ALIGN_MIDDLE); //设置垂直居中table.addCell(cell);count++;}}doc.add(table);}/*** 生成一个表格* @author hou_fx* @param total 总列数* @param textFont 字体* @param data 表格数据 X行 Y列* @param doc PDF文档对象* @param colspan 第几列* @param rowspan 第几行* @param number 跨几列* @throws DocumentException*/public static void TableColspan(int total,Font textFont,List<List<String>> data,Document doc,int[] rowspan,int[] colspan,int[] number) throws DocumentException{// 创建一个有N列的表格PdfPTable table = new PdfPTable(total);table.setPaddingTop(20);table.setSpacingAfter(20);table.setTotalWidth(530); //设置列宽// table.setTotalWidth(new float[]{ 100, 165, 100, 165 }); //设置列宽table.setLockedWidth(true); //锁定列宽PdfPCell cell;//数组下标int cos=0;for (int i = 0; i < data.size(); i++) { //遍历数据行 每个数据行都是一个listIterator<String> it = data.get(i).iterator();int count=0;while (it.hasNext()) { //遍历每行数据,每个数据都是一个单元格cell = new PdfPCell(new Phrase(it.next(), textFont));cell.setMinimumHeight(17); //设置单元格高度cell.setUseAscender(true); //设置可以居中if (cos<rowspan.length && i==rowspan[cos]-1 && count==colspan[cos]-1) {// if (i==rowspan[cos]-1) {//行
// if (count==colspan[cos]-1) {//列cell.setColspan(number[cos]);//跨单元格cos++;
// }
// }}cell.setHorizontalAlignment(Element.ALIGN_LEFT);cell.setVerticalAlignment(Element.ALIGN_MIDDLE); //设置垂直居中table.addCell(cell);count++;}}doc.add(table);}}
部分代码,可根据实际需求进行扩展。
效果图如下:
itextpdf 表格生成与跨行跨列相关推荐
- Table表格字段居中,跨行跨列
1.整个表格字段居中 <table id="contentTable" style="text-align: center;"> </tab ...
- php表格最后一行跨列合并,php动态实现表格跨行跨列实现代码
php动态实现表格跨行跨列实现代码 发布于 2015-01-28 14:56:14 | 203 次阅读 | 评论: 0 | 来源: 网友投递 PHP开源脚本语言PHP(外文名: Hypertext P ...
- itextpdf 表格跨行跨列与可视化图表
文章目录 itextpdf 表格跨行跨列与可视化图表 效果图 普通表格一(表头背景色) 普通表格二 (隔列变色) 表格跨行跨列 可视化图表 使用示例 普通表格一(表头背景色) 普通表格二 (隔列变色) ...
- 小程序跨行跨列多列复杂表格实现
今天来实现个跨行跨列多列表格. 如图,这是个列数不确定,有的单元格还要跨行跨列的复杂表格. 这里暂时最多支持4列,列数再多就放不下了. 实现原理 实现原理比较简单,通过多个嵌套的循环将数据取出. 上面 ...
- 【尚硅谷 Java Web 笔记】表格的跨行跨列
colspan 属性设置跨列 rowspan 属性设置跨行 <!DOCTYPE html><html lang="en"><head><m ...
- php 中如何设置单元格跨行,HTML表格中单元格跨行跨列
HTML表格中单元格跨行跨列 对于标准的表格,每一行的单元格 数量是一样的.但在实际使用中,经常会遇到跨行跨列的表格,这个时候,每一行的数量就不一样了. 一.定义 所谓"跨行",是 ...
- latex表格 分行 跨行跨列
某个表格的单元格中 文字太长 需要分行显示的方法 如分成3行显示 添加命令 -------- \newcommand{\tabincell}[2]{\begin{tabular}{@{}#1@{}} ...
- table标签、表格的跨行跨列、ifarme标签
table标签 需求: 制作一个带表头的三行山列的表格,并显示边框:修改表格的宽度.高度.表格的对齐方式.单元格间距. <!DOCTYPE html> <html lang=&quo ...
- latex跨行跨列表格
使用revtex模板的跨行跨列表格时候不需要使用\usepackage{booktabs},否则midrule,toprule这些线条不能够正常显示.因此需要使用自带的线条. 下面记录一下我试用过的跨 ...
最新文章
- 【译】SQL Server误区30日谈-Day1-正在运行的事务在服务器故障转移后继续执行
- 纪委计算机管理制度,纪委监察处信息管理办法
- opencv上gpu版surf特征点与orb特征点提取及匹配实例
- 认证(登录)功能需求分析
- Java——多线程(线程安全问题)
- 漏洞:WebRTC 泄漏用户IP
- 大熊君大话NodeJS之------Net模块
- php图片写入带问号_php-fpm Remote Code Execution 分析(CVE-2019-11043)
- 阿里云 远程 mysql_阿里云 远程mysql
- 《JUnit实战(第2版)》—第1章1.2节从零开始
- ZF环境要求及如何配置
- 【NLP论文推荐】 掌握实体关系抽取必读的文章
- samba、nginx服务
- python弹球游戏移动球拍_python pygame实现挡板弹球游戏的代码
- 远程控制电脑的实现方法
- Oracle数据备份与恢复
- 【详解】MD5加密真的安全吗?不安全有什么解决办法?
- 【九州贯连智能家居——拥抱华为5.5G,打造未来家居公共物联网关,让生活赋能】
- Rockchip USB FFS Test Demo 使用说明
- 吉米_王:乌班图下安装pycharm的方式