POI Excel表格合并,边框设置
- RegionUtil.setBorderLeft(1, cellRangeAddress, sheet, wb);
- RegionUtil.setBorderBottom(1, cellRangeAddress, sheet, wb);
- RegionUtil.setBorderRight(1, cellRangeAddress, sheet, wb);
- RegionUtil.setBorderTop(1, cellRangeAddress, sheet, wb);
- Row row=sheet.createRow((short)0);
- ImageUtil.createCell("排序", 0, sctext, row);
- CellRangeAddress CellRangeAddress1 = new CellRangeAddress(0,2,0,0);
- sheet.addMergedRegion(CellRangeAddress1);
- RegionUtil.setBorderLeft(1, cellRangeAddress, sheet, wb);
- RegionUtil.setBorderBottom(1, cellRangeAddress, sheet, wb);
- RegionUtil.setBorderRight(1, cellRangeAddress, sheet, wb);
- RegionUtil.setBorderTop(1, cellRangeAddress, sheet, wb);
- ImageUtil.createCell("项目名称", 1, sctext, row);
- CellRangeAddress CellRangeAddress2 = new CellRangeAddress(0,2,1,1);
- sheet.addMergedRegion(CellRangeAddress2);
- ImageUtil.createCell("姓名", 2, sctext, row);
- CellRangeAddress CellRangeAddress3 = new CellRangeAddress(0,2,2,2);
- sheet.addMergedRegion(CellRangeAddress3);
- ImageUtil.createCell("各指标完成情况总数据", 3, sctext, row);
- CellRangeAddress CellRangeAddress4 = new CellRangeAddress(0,0,3,8);
- sheet.addMergedRegion(new CellRangeAddress(0,0,3,8));
- ImageUtil.createCell("各指标完成率", 9, sctext, row);
- CellRangeAddress CellRangeAddress5 = new CellRangeAddress(0,0,9,14);
- sheet.addMergedRegion(CellRangeAddress5);
- Row row2=sheet.createRow((short)1);
- ImageUtil.createCell("覆盖面", 3, sctext, row2);
- CellRangeAddress CellRangeAddress6 = new CellRangeAddress(1,1,3,4);
- sheet.addMergedRegion(CellRangeAddress6);
- ImageUtil.createCell("频次", 5, sctext, row2);
- CellRangeAddress CellRangeAddress7 = new CellRangeAddress(1,1,5,6);
- sheet.addMergedRegion(CellRangeAddress7);
结果如下图:

最后是顺序问题导致的.其原因是因为在编辑单元格的时候,后者覆盖了前者的style.
解决办法:
封装了一个方法:
- public void setBorder(CellRangeAddress cellRangeAddress, Sheet sheet,
- Workbook wb) throws Exception {
- RegionUtil.setBorderLeft(1, cellRangeAddress, sheet, wb);
- RegionUtil.setBorderBottom(1, cellRangeAddress, sheet, wb);
- RegionUtil.setBorderRight(1, cellRangeAddress, sheet, wb);
- RegionUtil.setBorderTop(1, cellRangeAddress, sheet, wb);
- }
然后将调用该方法的步骤放到最后,记得是最后,就是全部单元格合并之后,否则会覆盖的,如下:
- super.setBorder(CellRangeAddress1, sheet, book);
- super.setBorder(CellRangeAddress2, sheet, book);
- super.setBorder(CellRangeAddress3, sheet, book);
- super.setBorder(CellRangeAddress4, sheet, book);
- super.setBorder(CellRangeAddress5, sheet, book);
- super.setBorder(CellRangeAddress6, sheet, book);
- super.setBorder(CellRangeAddress7, sheet, book);
- super.setBorder(CellRangeAddress8, sheet, book);
- super.setBorder(CellRangeAddress9, sheet, book);
- super.setBorder(CellRangeAddress10, sheet, book);
- super.setBorder(CellRangeAddress11, sheet, book);
- super.setBorder(CellRangeAddress12, sheet, book);
- super.setBorder(CellRangeAddress13, sheet, book);
- super.setBorder(CellRangeAddress14, sheet, book);
- super.setBorder(CellRangeAddress15, sheet, book);
- super.setBorder(CellRangeAddress16, sheet, book);
POI Excel表格合并,边框设置的更多相关文章
- Python将多个excel表格合并为一个表格
Python将多个excel表格合并为一个表格 生活中经常会碰到多个excel表格汇总成一个表格的情况,比如你发放了一份表格让班级所有同学填写,而你负责将大家的结果合并成一个.诸如此类的问题有很多.除 ...
- asp.net数据导出到excel表格,并设置表格样式
1.首先在项目中添加引用
- CSS开发技巧(二):表格合并边框后的单元格宽度计算
前言: 分离边框模型和合并边框模型是表格的两种模型,它通过以下属性确定: border-collapse:separate(默认值) | collapse | inherit 当采用分离边框模型时,表 ...
- phpStudy6——php导出可以设置样式的excel表格
前言: 一般的后台管理页面肯定少不了excel表格导出的功劳,尤其是那些电商平台的订单导入导出,用户列表的导入导出等,那么本文就介绍php是如何导出excel表格的. php导出excel方法有很多, ...
- java中使用jxl导出Excel表格详细通用步骤
该方法一般接收两个参数,response和要导出的表格内容的list. 一般我们将数据库的数据查询出来在页面进行展示,根据用户需求,可能需要对页面数据进行导出. 此时只要将展示之前查询所得的数据放入s ...
- 复杂的POI导出Excel表格(多行表头、合并单元格)
poi导出excel有两种方式: 第一种:从无到有的创建整个excel,通过HSSFWorkbook,HSSFSheet HSSFCell, 等对象一步一步的创建出工作簿,sheet,和单元格,并添加 ...
- NPOI_winfrom导出Excel表格(一)(合并单元格、规定范围加外边框、存储路径弹框选择)
1.导出 private void btn_print_Click(object sender, EventArgs e) { DataTable dtNew = new DataTable(); d ...
- 用NPOI创建Excel、合并单元格、设置单元格样式、边框的方法
本篇文章小编为大家介绍,用NPOI创建Excel.合并单元格.设置单元格样式.边框的方法.需要的朋友参考下 今天在做项目中,遇到使用代码生成具有一定样式的Excel,找了很多资料,最后终于解决了,Ex ...
- Python快速设置Excel表格边框
import xlwings as xw #打开存好的excel app = xw.App() #设置应用 wb = xw.Book("E:/Data/小蜜蜂超市销售报表.xlsx" ...
随机推荐
- android studio 3.0之后版本自定义文件名生成apk文件
修改app模块的build.gradle 在android闭包中添加以下代码 //指定打包后应用名称 android.applicationVariants.all { variant -> v ...
- SQLTransientConnectionException: HikariPool-1 - Connection is not available, request timed out after 30001ms.
SQLTransientConnectionException: HikariPool-1 - Connection is not available, request timed out after ...
- 【Vue实战之路】二、路由使用基础,六步搞定Vue-router
vue-router的出现是为了解决路由与视图(实际项目中的单文件组件)的对应关系.若单单为了实现交互时对相应组件的渲染,则通过vue的基础操作完全可以实现,那么为什么要是用vue-router呢,个 ...
- httpclient初步封装
Http通信方式:HttpURLConnection和HttpClient HttpURLConnection是java的标准类,什么都没封装,用起来太原始,不方便HttpClient就是一个增强版的 ...
- Android Data Binding
Android官方数据绑定框架DataBinding, 1.什么是DataBinding 2.DataBinding基础用法 3.DataBinding原理 4.表达式 5.null检查 6.incl ...
- 堆排序之Java实现
堆排序之Java实现 代码: package cn.com.zfc.lesson21.sort; /** * * @title HeapSort * @describe 堆排序 * @author 张 ...
- 1200 同余方程 2012年NOIP全国联赛提高组
题目描述 Description 求关于 x 同余方程 ax ≡ 1 (mod b)的最小正整数解. 输入描述 Input Description 输入只有一行,包含两个正整数 a, b,用 一个 空 ...
- hiho1270 建造基地([Offer收割]编程练习赛1)
题目意思很简单, 一道类似于背包的问题,问恰好超过背包容量的最小取值.并且需要计算n次,每计算一次都要将所有的物品的价值w[i] /= t,最后输出背包n次的总使用容量. 如果无法实现输出”No An ...
- nginx+uwsgi+flask 服务器配置
注:每个机器,软件版本可能不一样,虽然网上有很多类似的帖子,但是我在搭建的时候遇到了不少的坑,此文仅供参考. 请求流程: 1.安装uwsgi uwsgi是一个应用服务器,非静态文件的网络请求就必须通过 ...
- TC SRM601
250 水题,上来想一下就可以搞了. 500,比赛时候没有想出来,结束后补了下,感觉很简单. 只要枚举两个集合异或结果哪一位二进制位不同,因为大小由最高位不同决定. 然后进行DP就可以了,比较好的题目 ...