学习目标:

在java掌握poi,操作excel或者是word

文章目录

  • 学习目标:
  • 一、POI 是什么?
  • 二、Excel包名称说明
  • 二、使用步骤
    • 1.引入库
    • 2.使用方式
      • 基础流程
      • 设置单元格(cell)样式
      • 设置单元格文本样式
      • 合并单元格
      • 单元格自动填充
  • 总结

一、POI 是什么?

Apache POI 是Apache的开源项目,POI提供API给Java程序对Microsoft Offic 格式文档读和写的功能。
官网地址:POI官网
目前已经更新到5.2版本是java中很好用绘制excel的项目

二、Excel包名称说明

HSSF XSSF SXSSF
对应Excel版本 2003及2003版本以前 2007后版本 2007后版本
扩展名 .xls .xlsx .xlsx
区别 最常用的方式,但是不能超过65535行,超出65536条就会报错,此方式因不足7万行所以一般不会内存溢出(OOM) 突破HSSF 65535行的局限(1048576行,16384列),不过就伴随着一个问题内存溢出,原因是你创建的是存在内存的并没有持久化 POI 3.8 开始,提供基于XSSF低内存占用的SXSSF方式。它只会保存最新的excel rows在内存里供查看,在此之前的都会被写入到硬盘里。被写入硬盘的rows是不可见/不可访问的。只有内存里才可以访问到
XSSF SXSSF
访问量 访问全部 访问一定数量的数据
Sheet.clone() 支持 不支持
更换表头 可以 不可,因为已经提前把数据写入硬盘就不能修改
公式求值 支持 不支持

二、使用步骤

1.引入库

代码如下(示例):

<dependency><groupId>org.apache.poi</groupId><artifactId>poi-excelant</artifactId><version>4.1.2</version>
</dependency>

2.使用方式

基础流程

//1. 创建工作空间Workbook
Workbook workbook=new SXSSFWorkbook();
//2.根据workbook创建sheet
//请注意,工作表名称不能超过31个字符,且不能包含以下字符:
//0x0000、0x0003、冒号(:)、反斜杠(\)、星号(*)、问号(?)、正斜杠(/)、方括号([])
//WorkbookUtil.createSafeSheetName(sheetName) 此方法可以将无效字符转化为空格
//已存在就不能创建,只能 workbook.getSheet("sheet")
Sheet sheet = workbook.createSheet("测试列表");
//3.根据sheet创建row
Row row1 = sheet.createRow(0);
//4.根据row创建cell
Cell cell1 = row1.createCell(0);
//5.向cell里面设置值
cell1.setCellValue("日期");//写入文件 文件需要存在
FileOutputStream fos=new FileOutputStream("C:\\Users\\admin\\Desktop\\test.xlsx");
workbook.write(fos);
fos.close();

设置单元格(cell)样式

//创建样式
CellStyle style = workbook.createCellStyle();//启用样式
cell.setCellStyle(cellStyle);//设置下边框和颜色
style.setBorderBottom(BorderStyle.THIN);
style.setBottomBorderColor(IndexedColors.BLACK.getIndex());
//设置左边框和颜色
style.setBorderLeft(BorderStyle.THIN);
style.setLeftBorderColor(IndexedColors.BLACK.getIndex());
//设置右边框和颜色
style.setBorderRight(BorderStyle.THIN);
style.setRightBorderColor(IndexedColors.BLACK.getIndex());
//设置上边框边框和颜色
style.setBorderTop(BorderStyle.THIN);
style.setTopBorderColor(IndexedColors.BLACK.getIndex());//水平对齐方式 [GENERAL(常规),LEFT(左对齐),CENTER(水平居中),RIGHT(右对齐),FILL(填充对齐),JUSTIFY(两端对齐),CENTER_SELECTION(跨列居中),DISTRIBUTED(分散对齐)]
style.setAlignment(HorizontalAlignment.CENTER);
//垂直对齐方式 [TOP(顶部对齐),CENTER(垂直居中),BOTTOM(底部对齐),JUSTIFY(两端对齐),DISTRIBUTED(分散对齐)]
style.setVerticalAlignment(VerticalAlignment.CENTER);//设置文本是否换行
style.setWrapText(true);//设置单元格时间展示格式
style.setDataFormat(creationHelper.createDataFormat().getFormat("m/d/yy h:mm"));

常用的单元格的样式,更详细的设置单元格方式可以通过官方提供api文档进行查看。

CellStyle(4.1.X版本)
注:有部分方法在4.2版本已经被弃用

设置单元格文本样式

//创建文本Font
Font font = workbook.createFont();//设置字号
font.setFontHeightInPoints((short)11);
//设置字体
font.setFontName("宋体");
//设置黑体
font.setBold(false);
//设置斜体
font.setItalic(false);
//设置删除线
font.setStrikeout(false);//设置字体颜色
//IndexedColors类中提供了我们设置excel使用的颜色也可以自己设置颜色GRB
font.setColor(IndexedColors.RED.getIndex());

合并单元格

//合并单元格
//如下合并 坐标 A1:B1的单元格
sheet.addMergedRegion(new CellRangeAddress(0, // 开始的列坐标 0表示A1 1表示A20, // 结束的列坐标 0表示A1 1表示A2 2表示A30, // 开始的行坐标 0表示A1 1表示B11  // 结束的行坐标 0表示A1 1表示B1));

如果我们对于单元格有一些样式要求比如表格的边框等等,那么在合并前我们需要为每一个单元格创建对于的表格style,在执行CellRangeAddress()方法,才能保证合并以后的样式是我们所需要的。
我们需要注意的就是,在合并的时候并不是合并后成为一个单元格,旧的单元格还是依旧存在,如A1和B1合并,A1的样式会覆盖于B1上(文本、背景色等),但是边框并不会

List<CellRangeAddress> mergedRegions = sheet.getMergedRegions();

通过sheet.getMergedRegions()我们可以获取到当前需要合并单元格的信息 A1:B1就是合并A1和B1单元格。

单元格自动填充

//参数1 表示对于的列
//参数2 true使用合并后的单元格扩充 false设置的对应行单元格扩充
sheet.autoSizeColumn(0,false);//如果使用的是SXSSFWorkbook,是不可读取的有一部分,所有需要设置为允许
((SXSSFSheet)sheet).trackColumnsForAutoSizing(Lists.newArrayList(0,1));
//或者
((SXSSFSheet)sheet).trackColumnForAutoSizing(1);
//对应的参数表示对于的某列设置完以后再执行autoSizeColumn即可。

总结

也是今天才认真看poi有记录一下使用上的方法。 有时间的话可以先学习easyPoi在自己封装一些东西。学而时习之不亦说乎!!!!!


java使用POI操作excel相关推荐

  1. execle java,Java使用POI操作Excel

    Java使用POI操作Excel 1. POI操作Excel 1.1. 依赖 org.apache.poi poi 4.1.0 org.apache.poi poi-ooxml 4.1.0 org.a ...

  2. java使用poi操作excel删除一整行

    java使用poi操作excel删除一整行 需求1:删除excel表格第4行 代码示例: sheet.shiftRows(4, sheet.getLastRowNum(),-1); 第一个参数为行数( ...

  3. Java使用poi操作excel注意事项

    Java使用poi操作excel注意事项 1.如果只需要获取sheet信息,用流模式打开文件即可获取,消耗内存少 2.上传的文件需要校验,防止Excel包含异常的缓存文件,缓存文件可能会有几百兆,会瞬 ...

  4. JAVA使用POI操作Excel表,XSSF(xlsx)和HSSF(xls)

    JAVA使用POI操作Excel表,XSSF(xlsx)和HSSF(xls) *** POI的结构: ---*HSSF - 提供读写Microsoft Excel格式档案的功能. ---*XSSF - ...

  5. Java 使用 POI 操作 Excel

    Apache POI 基本介绍 Apache POI 是 Apache 软件基金会提供的 100% 开源库.支持 Excel 库的所有基本功能. 图片来源:易百教程 基本概念 在 POI 中,Work ...

  6. Java 使用 POI 操作 Excel(反射,大数据量)

    Apache POI 基本介绍 Apache POI 是 Apache 软件基金会提供的 100% 开源库.支持 Excel 库的所有基本功能. 图片来源:易百教程 基本概念 在 POI 中,Work ...

  7. java使用poi操作excel(读、写)

    摘要: Jakarta POI 是apache的子项目,目标是处理ole2对象.它提供了一组操纵Windows文档的Java API 目前比较成熟的是HSSF接口,处理MS Excel(97-2007 ...

  8. Java实战—POI操作Excel文档、读取、写入、合并单元格

    一.POI项目简介 POI全称 Poor Obfuscation Implementation,利用POI接口可以通过JAVA操作Microsoft office 套件工具的读写功能.官网:http: ...

  9. Java使用POI操作Excel文件

    我们可以使用POI操作Excel文件,本文主要介绍:"导入POI的Maven依赖"."创建Poi对象"."Poi读取Excel工作表数目". ...

  10. java用poi操作excel,2003,2007,2010

    原文: [url]http://happyqing.iteye.com/blog/1965570[/url] [color=red]通过POI统一读取Excel文件[/color](兼容97-2003 ...

最新文章

  1. git 无法拉取新的远程分支
  2. oracle 11g autotrace,ORACLE 使用AUTOTRACE功能
  3. 25大技术主题向您发出最后一次约【惠】邀请
  4. 微软Visual Studio 14 CTP 2 发布
  5. vue.js源码学习分享(五)
  6. vue中注意watch的执行顺序
  7. Ubuntu服务启动脚本
  8. FreeFileSync 文件夹比较与同步软件
  9. 清华大学李雅哲计算机,研究生教育动态 - 清华大学.pdf
  10. 大智慧炒股软件下载|选股软件
  11. BF算法和KMP算法详解
  12. win10停止更新_你的win10即将终止!各大版本服务终止日期大全,准备好了吗?...
  13. mosquitto出现由于目标计算机积极拒绝,无法连接
  14. java 重写函数_JAVA函数的重载和重写
  15. python判断是不是字母_python判断字符是否为字母和数字
  16. 共发行50套清华大学吴光科团队京峰教育内供版
  17. IPTABLES知识
  18. java输入输出流、字符字节流
  19. TLSR8258开发-低功耗
  20. 重装系统 linux u盘启动不了怎么办,用U盘启动盘重装系统启动时黑屏

热门文章

  1. java 腾讯认证_Java 腾讯验证码平台使用实例
  2. idea 如何一键清除所有断点
  3. 低代码指南100解决方案:49应用参谋让家校互联更透明,让家长心甘情愿成为教培机构宣传“水军“
  4. 数学概率游戏之:三国杀,吕布vs赵云谁会胜?
  5. spring2.5.6整合hibernate3.3.2_Annotation声明式事务管理-第二节
  6. Tizen系统开发尝试,写一个简单的游戏
  7. 精读Translating and Segmenting Multimodal Medical Volumes with Cycle- andShape-Consistency Generative
  8. win7计算机不显示摄像头图标不见了,win7摄像头图标不见了,win7如何显示摄像头图标...
  9. 在计算机领域中,通常用英文单词 bit 来表示,2013安徽省全国计算机等级考试二级笔试试卷VB试题及答案...
  10. 湖北交通职业技术学院计算机应用代码,2019年湖北交通职业技术学院单独招生《航海技术专业》技能考试大纲...