Apache POI使用指南(HSSFWorkbook生成excel)
说 明:
- 由于poi的功能多样,可以生成ppt、word、excel.......,本文就以生成excel为例进行说明,相信聪明的你一定能举一反三
- 使用的版本4.0.1
- maven依赖
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi</artifactId>
<version>4.0.1</version>
</dependency>
- poi组件说明
组件 | 组件类型 |
HSSF | Microsoft Excel XLS格式档案 |
XSSF | Microsoft Excel OOXML XLSX格式档案 |
HWPF | Microsoft Word DOC格式档案 |
HSLF | Microsoft PowerPoint格式档案 |
HDGF | Microsoft Visio格式档案 |
HPBF | Microsoft Publisher格式档案 |
HSMF | Microsoft Outlook格式档案 |
- 生成一个excel文档demo
代码
public static void hssfDemo1() throws Exception{ //1.创建一个文档对象HSSFWorkbook (一个excel文档就对应一个HSSFWorkbook实例), 有两种创建方式
//方式一
HSSFWorkbook wb = new HSSFWorkbook();
//方式二
// HSSFWorkbook wb = HSSFWorkbookFactory.createWorkbook(); //2.我们都知道excel文档里面对应了sheet(可以有多个sheet),所以第二个步骤就是生成sheet对象
HSSFSheet sheet1 = wb.createSheet("sheet1"); //"sheet1"未对应的sheet的名称 //3.sheet里面的内容都是一行一行的格子组成,所以需要创建“行对象”
HSSFRow row0 = sheet1.createRow(0); //创建第一行,"0"为行号的下标 //4.生成列
HSSFCell cell0 = row0.createCell(0); //生成第一行的第一列
HSSFCell cell1 = row0.createCell(1); //生成第一行的第二列
HSSFCell cell2 = row0.createCell(2); //生成第一行的第三列
HSSFCell cell3 = row0.createCell(3); //生成第一行的第四列 //5.给列进行赋值
cell0.setCellValue("姓名");
cell1.setCellValue("年龄");
cell2.setCellValue("地址");
cell3.setCellValue("电话"); //6.输出excel文件
FileOutputStream fileOut = new FileOutputStream("C:/workbook.xls");
wb.write(fileOut);
}
生成文件结果
- 相信聪明的你看了上面的demo,对生成excel有了一个感性的认识,下面来生成一个有点样子的excel文档(合并单元格、设置样式、设置字体。。。。。。)
public static void hssfDemo2() throws Exception{ //创建文档对象HSSFWorkbook
HSSFWorkbook wb = HSSFWorkbookFactory.createWorkbook(); //创建sheet
HSSFSheet sheet1 = wb.createSheet("我是sheet1");
HSSFSheet sheet2 = wb.createSheet("我是sheet2"); //由于此方式创建行和列需要很大的代码量,我们可以采用循环的方式进行构建
/*
//创建sheet1里面的行
HSSFRow row0 = sheet1.createRow(0); // 创建第一行,"0"为行号的下标
HSSFRow row1 = sheet1.createRow(1); // 创建第一行,"0"为行号的下标
HSSFRow row2 = sheet1.createRow(2); // 创建第一行,"0"为行号的下标 // 4.生成列
HSSFCell cell0 = row0.createCell(0); // 生成第一行的第一列
HSSFCell cell1 = row0.createCell(1); // 生成第一行的第二列
HSSFCell cell2 = row0.createCell(2); //生成第一行的第三列
HSSFCell cell3 = row0.createCell(3); //生成第一行的第四列
*/ //for循环方式进行构建"行和列"
//分别给sheet1和sheet2构建10行
for(int i = 0; i < 10; i++){ //生成10行
HSSFRow a = sheet1.createRow(i); //sheet1的行
HSSFRow b = sheet2.createRow(i); //sheet2的行
} //给行设置标题
HSSFRow row0OnSheet1 = sheet1.getRow(0);
HSSFRow row1OnSheet1 = sheet1.getRow(1); row0OnSheet1.createCell(0).setCellValue("姓名");
row0OnSheet1.createCell(1).setCellValue("年龄");
row0OnSheet1.createCell(2).setCellValue("联系方式");
row0OnSheet1.createCell(3);
row0OnSheet1.createCell(4); row1OnSheet1.createCell(2).setCellValue("QQ");
row1OnSheet1.createCell(3).setCellValue("微信");
row1OnSheet1.createCell(4).setCellValue("手机"); //合并单元格
//上下单元格合并操作 (将"姓名"、"年龄"两列每个单元格上下合并)
sheet1.addMergedRegion(new CellRangeAddress(0, 1, 0, 0)); //将第一列的“第一行与第二行”合并 参数说明:(0, 1, 0, 0) -->(第一行下标, 第二行下标, 第一列, 第一列下标)
sheet1.addMergedRegion(new CellRangeAddress(0, 1, 1, 1)); //左右单元格合并 (将第一行的三个单元格(下标为2 3 4)合并成一个单元格,"联系方式")
sheet1.addMergedRegion(new CellRangeAddress(0, 0, 2, 4)); //设置样式
//创建字体样式
HSSFFont font = wb.createFont();
font.setBold(true); //加粗
font.setColor((short)50); //设置字体颜色
font.setFontHeightInPoints((short) 12); //字体大小
//构建列的样式
HSSFCellStyle cs = wb.createCellStyle();
cs.setFont(font); //列的字体
cs.setAlignment(HorizontalAlignment.CENTER); //水平居中对齐
cs.setVerticalAlignment(VerticalAlignment.CENTER); //垂直居中对齐 //给excel列加上样式
for(int i = 0; i < 10; i++){
sheet1.setColumnWidth(i, 20 * 256);
HSSFCell cell = row0OnSheet1.getCell(i);
HSSFCell cell1 = row1OnSheet1.getCell(i);
if(cell != null){
cell.setCellStyle(cs);
}
if(cell1 != null){
cell1.setCellStyle(cs);
}
} //输出excel文件
FileOutputStream fileOut = new FileOutputStream("C:/workbook.xls");
wb.write(fileOut); }
生成文件结果
本文地址:https://www.cnblogs.com/whqworld/p/10564916.html
如果你有更简介的方式欢迎留言 !谢谢
Apache POI使用指南(HSSFWorkbook生成excel)的更多相关文章
- 使用POI做的一个生成Excel的工具类。包含了导出Excel和解析Excel方法
PoiExcelUtils.java /** * */ package com.common.office; import java.io.File; import java.io.FileInput ...
- Apache poi简介及代码操作Excel
一.简介 在我们进行企业的系统开发时,难免会遇到网页表格和Excel之间的操作问题(POI是个不错的选择) Apache POI是Apache软件基金会的开放源码函式库,POI提供API给Java程序 ...
- 通过poi的XSSF实现生成excel文件
maven导入依赖jar包: <dependency> <groupId>org.apache.poi</groupId> <artifactId>po ...
- 使用java Apache poi 根据word模板生成word报表
项目开发过程中,客户提出一堆导出报表的需求,需要导出word格式,页眉还需要加上客户公司的logo,试了几种方案,最后选择了用 Apache poi 加上自定义标签的方式实现. 目前功能还比较简单,一 ...
- Apache POI 一键上传(导入excel文件到数据库)
import cn.XXXX.bos.utils.PinYin4jUtils; import org.apache.commons.lang3.StringUtils; // HSSF:操作07版本之 ...
- org.apache.poi.ss.usermodel 类操作excel数据遗漏
直接上图. 错误程序: 循环读取每一行的单元格数据部分 //for (int j = row.getFirstCellNum(); j < row.getLastCellNum(); j++) ...
- apache poi 生成excel
ExcelBuilder.Java package com.coracle.yk.xmanager.util.poi; import com.coracle.yk.xframework.util.Bl ...
- Java中用Apache POI生成excel和word文档
概述: 近期在做项目的过程中遇到了excel的数据导出和word的图文表报告的导出功能.最后决定用Apache POI来完毕该项功能.本文就项目实现过程中的一些思路与代码与大家共享.同一时候.也作为自 ...
- 【Java】使用Apache POI生成和解析Excel文件
概述 Excel是我们平时工作中比较常用的用于存储二维表数据的,JAVA也可以直接对Excel进行操作,分别有jxl和poi,2种方式. HSSF is the POI Project's pure ...
随机推荐
- Spring Boot中@ConfigurationProperties注解实现原理源码解析
0. 开源项目推荐 Pepper Metrics是我与同事开发的一个开源工具(https://github.com/zrbcool/pepper-metrics),其通过收集jedis/mybatis ...
- Jmete压力测试、并发测试的简单方法
我们的需求场景如下: 服务器硬件:(只有一台) 系统:CentOS 7 WebServer:Tomcat 7.0 Jdk:1.8 CPU:8核 2.9GHz两个 内存:16g 报名应用系统:只需要向外 ...
- 品Spring:bean工厂后处理器的调用规则
上一篇文章介绍了对@Configuration类的处理逻辑,这些逻辑都写在ConfigurationClassPostProcessor类中. 这个类不仅是一个“bean工厂后处理器”,还是一个“be ...
- 【SQL基础】char,nchar,vchar,nvchar之间的区别
(1) 定义: char: 固定长度,存储ANSI字符,不足的补英文半角空格. nchar: 固定长度,存储Unicode字符,不足的补英文半角空格 varchar: 可变长度 ...
- Angular toastr提示框
1. 安装ngx-toastr包 npm install ngx-toastr --save 2. package.json中引入toastr样式文件 "styles": [&qu ...
- 概率与期望详解!一次精通oi中的概率期望
目录 基础概念 最大值不超过Y的期望 概率为P时期望成功次数 基础问题 拿球 随机游走 经典问题 期望线性性练习题 例题选讲 noip2016换教室 区间交 0-1边树求直径期望 球染色 区间翻转 二 ...
- YiShaAdmin,基于.NET Core Web开源的后台快速开发框架
YiShaAdmin YiShaAdmin 基于.NET Core Web开发,借鉴了很多开源项目的优点,让你开发Web管理系统和移动端Api更简单,所以我也把她开源了. 她可以用于所有的Web应用程 ...
- [ASP.NET Core 3框架揭秘] 跨平台开发体验: Docker
对于一个 .NET Core开发人员,你可能没有使用过Docker,但是你不可能没有听说过Docker.Docker是Github上最受欢迎的开源项目之一,它号称要成为所有云应用的基石,并把互联网升级 ...
- A-05 前向选择法和前向梯度法
目录 前向选择法和前向梯度法 一.前向选择法 1.1 余弦相似度求投影 1.2 举例 1.3 前向选择法优缺点 1.3.1 优点 1.3.2 缺点 二.前向梯度法 2.1 举例 2.2 前向梯度法优缺 ...
- CSS3 入门到精通(一)
CSS 用于控制网页的样式和布局. CSS3 是最新的 CSS 标准. 一. CSS3边框 实例 向 div 元素添加圆角: div { border:2px solid; border-radius ...