java poi导出Excel合并单元格并设置边框
import org.apache.poi.hssf.usermodel.HSSFCell;
import org.apache.poi.hssf.usermodel.HSSFCellStyle;
import org.apache.poi.hssf.usermodel.HSSFRow;
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.ss.util.CellRangeAddress;
import org.apache.poi.ss.util.RegionUtil; //写入Excel,读取模板
InputStream stram= view.getDesktop().getWebApp().getResourceAsStream(File.separator+"Template"+File.separator+"interviewPublicity.xls");
HSSFWorkbook workbook = new HSSFWorkbook(stram);
HSSFSheet sheet = workbook.getSheetAt(0);
//写入数据
HSSFRow row = sheet.getRow(0);
HSSFCell cell = row.getCell(0);
index = 4;
//单元格格式
row = sheet.getRow(index);
cell= row.getCell(0);
HSSFCellStyle cellStyle = cell.getCellStyle();
int num = 1;
for (Entry<String, Map<String, List<BasicDBObject>>> bmd : bmdMap.entrySet()) {
//单位
int deptRowIndex = index;
int deptRowEndIndex = deptRowIndex;
//岗位集合
for (Entry<String, List<BasicDBObject>> empList : bmd.getValue().entrySet()) {
//岗位
int jobRowIndex = index;
//考生
for (BasicDBObject emp : empList.getValue()) {
if (index > 4) {
row = sheet.createRow(index);
cell= row.createCell(0);
}
cell.setCellValue(num++);
cell.setCellStyle(cellStyle);
cell= row.createCell(3);
cell.setCellValue(emp.getString("姓名"));
cell.setCellStyle(cellStyle);
cell= row.createCell(4);
cell.setCellValue(emp.getString("examCardId"));
cell.setCellStyle(cellStyle);
index++;
}
row = sheet.getRow(jobRowIndex);
if (empList.getValue().size() > 1) {
int jobRowEndIndex = jobRowIndex + empList.getValue().size() - 1;
//合并单元格
CellRangeAddress cellRange = new CellRangeAddress(jobRowIndex, jobRowEndIndex, (short) 2, (short) 2);
sheet.addMergedRegion(cellRange);
//添加边框
RegionUtil.setBorderTop(1, cellRange, sheet, workbook);
RegionUtil.setBorderBottom(1, cellRange, sheet, workbook);
RegionUtil.setBorderLeft(1, cellRange, sheet, workbook);
RegionUtil.setBorderRight(1, cellRange, sheet, workbook);
}
cell= row.createCell(2);
cell.setCellValue(empList.getKey());
cell.setCellStyle(cellStyle); deptRowEndIndex += empList.getValue().size();
}
row = sheet.getRow(deptRowIndex);
if (deptRowEndIndex-1 > deptRowIndex) {
//合并单元格
CellRangeAddress cellRange = new CellRangeAddress(deptRowIndex, deptRowEndIndex-1, (short) 1, (short) 1);
sheet.addMergedRegion(cellRange);
//为合并单元格添加边框
RegionUtil.setBorderTop(1, cellRange, sheet, workbook);
RegionUtil.setBorderBottom(1, cellRange, sheet, workbook);
RegionUtil.setBorderLeft(1, cellRange, sheet, workbook);
RegionUtil.setBorderRight(1, cellRange, sheet, workbook);
}
cell= row.createCell(1);
cell.setCellValue(bmd.getKey());
cell.setCellStyle(cellStyle);
}
String fileName = getExamPlan().getString("bmbName")+"面试人员名单公示.xls";
ByteArrayOutputStream byteOut = new ByteArrayOutputStream();
workbook.write(byteOut);
byteOut.close(); InputStream is = new ByteArrayInputStream(byteOut.toByteArray());
Filedownload.save(is, null, fileName);//OFBIZ导出
java poi导出Excel合并单元格并设置边框的更多相关文章
- poi导出excel合并单元格(包括列合并、行合并)
1 工程所需jar包如下:commons-codec-1.5.jarcommons-logging-1.1.jarlog4j-1.2.13.jarjunit-3.8.1.jarpoi-3.9-2012 ...
- java 利用poi 实现excel合并单元格后出现边框有的消失的解决方法
使用工具类RegionUtil CellRangeAddress cra = new CellRangeAddress(nowRowCount, nowRowCount + followSize-1, ...
- 在Asp.Net MVC中使用NPOI插件实现对Excel的操作(导入,导出,合并单元格,设置样式,输入公式)
前言 NPOI 是 POI 项目的.NET版本,它不使用 Office COM 组件,不需要安装 Microsoft Office,目前支持 Office 2003 和 2007 版本. 1.整个Ex ...
- poi 合并单元格、设置边框
HSSFWorkbook wb = new HSSFWorkbook(); HSSFSheet sheet = wb.createSheet(); //创建一个样式 HSSFCellStyle sty ...
- npoi导出excel合并单元格
需要引用NPOI.dll程序集和Ionic.Zip.dll程序集 string[] headerRowName = { "序号", "地市", "镇街 ...
- NPOI之Excel——合并单元格、设置样式、输入公式、设置筛选等
首先建立一个空白的工作簿用作测试,并在其中建立空白工作表,在表中建立空白行,在行中建立单元格,并填入内容: //建立空白工作簿 IWorkbook workbook = new HSSFWorkboo ...
- NPOI之Excel——合并单元格、设置样式、输入公式
首先建立一个空白的工作簿用作测试,并在其中建立空白工作表,在表中建立空白行,在行中建立单元格,并填入内容: //建立空白工作簿 IWorkbook workbook = new HSSFWorkboo ...
- C#.Net 导出Excel 之单元格 相关设置
range.NumberFormatLocal = "@"; //设置单元格格式为文本range = (Range)worksheet.get_Range("A1 ...
- 重构:以Java POI 导出EXCEL为例
重构 开头先抛出几个问题吧,这几个问题也是<重构:改善既有代码的设计>这本书第2章的问题. 什么是重构? 为什么要重构? 什么时候要重构? 接下来就从这几个问题出发,通过这几个问题来系统的 ...
随机推荐
- java基础学习笔记四(异常)
Java中的异常 Exception 如图可以看出所有的异常跟错误都继承与Throwable类,也就是说所有的异常都是一个对象. 从大体来分异常为两块: 1.error---错误 : 是指程序无法处理 ...
- POJ 1426 Find The Multiple (dfs??!!)
Description Given a positive integer n, write a program to find out a nonzero multiple m of n whose ...
- 如何把EXCEL数据导入到SQL SERVER数据库中 (转)
转:http://blog.csdn.net/jjp837661103/article/details/13509889 在我们完成一个项目开发之后,通常我们需要把客户的很多数据导入到数据库中,面对大 ...
- Nginx在Windows平台的配置
Nginx在Windows平台的配置 能够使用Nginx搭建Tomcat集群,并完成负载均衡. 1.什么是Nginx 2.为什么使用Nginx 背景: 互联网飞速发展的今天,大用户量高并发已经成为互联 ...
- MySQL 下载,安装,配置windows 服务
本次使用的是压缩包的方式是可以纯手动自己折腾各种配置... ok,闲话少叙,我们准备发车... 一.先要去mysql官网去下载压缩包咯 ①下载地址:https://dev.mysql.com/down ...
- Python基础一(格式化输出、流程控制)
(1)格式化输出(%% 第一个% 转译) # 格式化 输入 输出 name = input("Name:") age = input("Age:") job = ...
- js判断是否pc端
function IsPC() { var userAgentInfo = navigator.userAgent; var Agents = ['Android', 'iPhone', 'Symbi ...
- thinkphp5一键清除缓存
入口文件定义缓存文件路径常量 define('DS', DIRECTORY_SEPARATOR); defined('APP_PATH') or define('APP_PATH', dirname( ...
- Dubbo入门到精通学习笔记(二十):MyCat在MySQL主从复制的基础上实现读写分离、MyCat 集群部署(HAProxy + MyCat)、MyCat 高可用负载均衡集群Keepalived
文章目录 MyCat在MySQL主从复制的基础上实现读写分离 一.环境 二.依赖课程 三.MyCat 介绍 ( MyCat 官网:http://mycat.org.cn/ ) 四.MyCat 的安装 ...
- StaticInjectorError[Http]:
报错:AppComponent.html:28 ERROR Error: StaticInjectorError[Http]: StaticInjectorError[Http]: 解决方法: