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 表格生成与跨行跨列相关推荐

  1. Table表格字段居中,跨行跨列

    1.整个表格字段居中 <table id="contentTable"  style="text-align: center;"> </tab ...

  2. php表格最后一行跨列合并,php动态实现表格跨行跨列实现代码

    php动态实现表格跨行跨列实现代码 发布于 2015-01-28 14:56:14 | 203 次阅读 | 评论: 0 | 来源: 网友投递 PHP开源脚本语言PHP(外文名: Hypertext P ...

  3. itextpdf 表格跨行跨列与可视化图表

    文章目录 itextpdf 表格跨行跨列与可视化图表 效果图 普通表格一(表头背景色) 普通表格二 (隔列变色) 表格跨行跨列 可视化图表 使用示例 普通表格一(表头背景色) 普通表格二 (隔列变色) ...

  4. 小程序跨行跨列多列复杂表格实现

    今天来实现个跨行跨列多列表格. 如图,这是个列数不确定,有的单元格还要跨行跨列的复杂表格. 这里暂时最多支持4列,列数再多就放不下了. 实现原理 实现原理比较简单,通过多个嵌套的循环将数据取出. 上面 ...

  5. 【尚硅谷 Java Web 笔记】表格的跨行跨列

    colspan 属性设置跨列 rowspan 属性设置跨行 <!DOCTYPE html><html lang="en"><head><m ...

  6. php 中如何设置单元格跨行,HTML表格中单元格跨行跨列

    HTML表格中单元格跨行跨列 对于标准的表格,每一行的单元格 数量是一样的.但在实际使用中,经常会遇到跨行跨列的表格,这个时候,每一行的数量就不一样了. 一.定义 所谓"跨行",是 ...

  7. latex表格 分行 跨行跨列

    某个表格的单元格中 文字太长 需要分行显示的方法 如分成3行显示 添加命令 --------  \newcommand{\tabincell}[2]{\begin{tabular}{@{}#1@{}} ...

  8. table标签、表格的跨行跨列、ifarme标签

    table标签 需求: 制作一个带表头的三行山列的表格,并显示边框:修改表格的宽度.高度.表格的对齐方式.单元格间距. <!DOCTYPE html> <html lang=&quo ...

  9. latex跨行跨列表格

    使用revtex模板的跨行跨列表格时候不需要使用\usepackage{booktabs},否则midrule,toprule这些线条不能够正常显示.因此需要使用自带的线条. 下面记录一下我试用过的跨 ...

最新文章

  1. 【译】SQL Server误区30日谈-Day1-正在运行的事务在服务器故障转移后继续执行
  2. 纪委计算机管理制度,纪委监察处信息管理办法
  3. opencv上gpu版surf特征点与orb特征点提取及匹配实例
  4. 认证(登录)功能需求分析
  5. Java——多线程(线程安全问题)
  6. 漏洞:WebRTC 泄漏用户IP
  7. 大熊君大话NodeJS之------Net模块
  8. php图片写入带问号_php-fpm Remote Code Execution 分析(CVE-2019-11043)
  9. 阿里云 远程 mysql_阿里云 远程mysql
  10. 《JUnit实战(第2版)》—第1章1.2节从零开始
  11. ZF环境要求及如何配置
  12. 【NLP论文推荐】 掌握实体关系抽取必读的文章
  13. samba、nginx服务
  14. python弹球游戏移动球拍_python pygame实现挡板弹球游戏的代码
  15. 远程控制电脑的实现方法
  16. Oracle数据备份与恢复
  17. 【详解】MD5加密真的安全吗?不安全有什么解决办法?
  18. 【九州贯连智能家居——拥抱华为5.5G,打造未来家居公共物联网关,让生活赋能】
  19. Rockchip USB FFS Test Demo 使用说明
  20. 吉米_王:乌班图下安装pycharm的方式

热门文章

  1. this的理解与使用
  2. win10设置pin一直转圈_WIN10安全模式下解决WINDOWS将于一分钟后重启。
  3. 每天都扫的二维码,你知道它的技术原理吗? 每天都扫的二维码,你知道它的技术原理吗?...
  4. 新版速卖通接口对接实现
  5. PS CC 2015 GIF动画制作 和 导出方法,图像序列
  6. 操作系统期末复习笔记
  7. 对比ES6和CommonJS
  8. 3年前端工程师的经验,大家可以收藏
  9. 新手python爬虫100个入门项目
  10. 像素占多大内存,多少字节,其间的转换关系