【POI框架实战】——POI设置Excel单元格格式

简介:  “这个excel中的数据怎么不能做加法啊?”、“标头这一行的字体怎么这么小啊,我都看不清”、“这一列能不能换个颜色,明显一些”、“你把这一列的数据给我留两个小数位。”、“这些数据能不能以货币的类型展示啊,就每个三位一个小逗号那种……”

背 景


 “这个excel中的数据怎么不能做加法啊?”、“标头这一行的字体怎么这么小啊,我都看不清”、“这一列能不能换个颜色,明显一些”、“你把这一列的数据给我留两个小数位。”、“这些数据能不能以货币的类型展示啊,就每个三位一个小逗号那种……”


 最近几天一直在“优化”系统导出excel的功能,为什么这么简单的功能需要用上好几天呢?


 1、产品部太苛刻

 2、我没有报着积极主动的心态去开发,产品提一个bug我改一个bug,改完之后没有主动点一遍整个系统所有用到导出的地方(主要原因)


 如图,我们在手动设置Excel单元格格式的时候,有许多种格式供我们选择:


0.gif


 在excel中,只需要动动小手指,就可以完成设置单元格格式的操作,java应用poi导出excel时,也有很多种格式供我们选择,下面整理一下最近遇到的单元格格式,掌握了以下内容,想要设计出满足需求的excel单元格应该不是难事。


 这里主要用到两个POI中的类:HSSFCellStyle和HSSFFont 。


 先创建一个工作簿:

HSSFWorkbook workbook=new HSSFWorkbook(); //创建工作簿


设置单元格的样式


  HSSFCellStyle主要用来设置单元格本身的格式,比如背景颜色、边框等。

  先利用工作簿实例创建HSSFCellStyle 实例cellStyle:


HSSFCellStyle cellStyle= workbook.createCellStyle();


  (1)设置单元格背景颜色


玫瑰色

cellStyle.setFillForegroundColor(IndexedColors.ROSE.getIndex());
cellStyle.setFillPattern(HSSFCellStyle.SOLID_FOREGROUND);


蓝色

cellStyle.setFillForegroundColor(IndexedColors.BLUE.getIndex());
cellStyle.setFillPattern(HSSFCellStyle.SOLID_FOREGROUND);


黄色


cellStyle.setFillForegroundColor(IndexedColors.YELLOW.getIndex());
cellStyle.setFillPattern(HSSFCellStyle.SOLID_FOREGROUND);


  ……

  在POI中可以用short类型的数值、IndexedColors类等方式设置颜色(为了代码可读建议用后者),更多颜色可以参考《POI设置单元格背景颜色》


  (2)设置单元格边框类型


cellStyle.setBorderTop(HSSFCellStyle.BORDER_THIN);//上边框-单线
cellStyle.setBorderBottom(HSSFCellStyle.BORDER_DOUBLE);//下边框-双线
cellStyle.setBorderLeft(HSSFCellStyle.BORDER_NONE);//左边框-无边框
cellStyle.setBorderRight(HSSFCellStyle.BORDER_THIN);//右边框-虚线


 方法中的参数类型为short,表示边框的类型(如粗细、双线等),也可以用 (short)1、(short)2 …… 表示,但为了代码的可读还是推荐用上述方式表示。如果想知道哪种格式对应哪个值,可以查看API,还有个简单的办法就是在eclipse中查看,把鼠标放到相应常量上,可以看到对应的short值:


网络异常,图片无法展示
|


  (3)设置单元格边框颜色

cellStyle.setTopBorderColor(IndexedColors.BLUE.getIndex());//上边框为蓝色
cellStyle.setBottomBorderColor(IndexedColors.YELLOW.getIndex());//下边框为黄色
cellStyle.setLeftBorderColor(IndexedColors.RED.getIndex());//左边框为红色
cellStyle.setRightBorderColor(IndexedColors.GREEN.getIndex());//右边框为绿色


  (4)设置对齐方式

cellStyle.setAlignment(HSSFCellStyle.ALIGN_LEFT);//左对齐
cellStyle.setAlignment(HSSFCellStyle.ALIGN_CENTER);//居中对齐
cellStyle.setAlignment(HSSFCellStyle.ALIGN_RIGHT);//右对齐
cellStyle.setAlignment(HSSFCellStyle.ALIGN_JUSTIFY);//自适应


设置字体的格式



HSSFFont 主要用来设置单元格中字体的格式,如字体、颜色、加粗等等。

  利用工作簿实例创建HSSFFont 实例font:

HSSFFont font = workbook.createFont();


 (1)设置字体

font.setFontName("宋体");  //设置字体为宋体  


  还可以设置“仿宋”、“黑体”、“楷体”……


  (2)设置字体大小

font.setFontHeightInPoints((short) 16);

 数值越大,字体越大哦~~

  

  (3)设置字体颜色

font.setColor(fontStyle.get("color"));

 (4)设置字体加粗

font.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD);//加粗
font.setBoldweight(HSSFFont.BOLDWEIGHT_NORMAL);//不加粗


  设置完字体后,不要忘了把字体的样式添加到单元格格式中哦,否则刚才的工夫就白费了→_→:

cellStyle.setFont(font);// 添加字体样式


  当然,POI还有很多强大的功能,暂不一一例举了,这里只是总结一下小编

最近接触到的,更多POI功能可以参考POI的API文档哦……

  是不是很简单啊,快动动你的小爪子试一试吧~~

相关文章
|
Python
使用OpenPyXL库实现Excel单元格其他对齐方式设置
本文介绍了如何使用Python的`openpyxl`库设置Excel单元格中的文本对齐方式,包括文本旋转、换行、自动调整大小和缩进等,通过具体示例代码展示了每种对齐方式的应用方法,适合需要频繁操作Excel文件的用户学习参考。
835 85
使用OpenPyXL库实现Excel单元格其他对齐方式设置
|
Java 测试技术 持续交付
【入门思路】基于Python+Unittest+Appium+Excel+BeautifulReport的App/移动端UI自动化测试框架搭建思路
本文重点讲解如何搭建App自动化测试框架的思路,而非完整源码。主要内容包括实现目的、框架设计、环境依赖和框架的主要组成部分。适用于初学者,旨在帮助其快速掌握App自动化测试的基本技能。文中详细介绍了从需求分析到技术栈选择,再到具体模块的封装与实现,包括登录、截图、日志、测试报告和邮件服务等。同时提供了运行效果的展示,便于理解和实践。
1350 4
【入门思路】基于Python+Unittest+Appium+Excel+BeautifulReport的App/移动端UI自动化测试框架搭建思路
|
开发工具 开发者
Excel 2016 VBA 提取单元格的中文字符
Excel 2016 VBA 提取单元格的中文字符
404 1
|
前端开发 JavaScript Java
导出excel的两个方式:前端vue+XLSX 导出excel,vue+后端POI 导出excel,并进行分析、比较
这篇文章介绍了使用前端Vue框架结合XLSX库和后端结合Apache POI库导出Excel文件的两种方法,并对比分析了它们的优缺点。
3087 0
|
Java Apache
Apache POI java对excel表格进行操作(读、写) 有代码!!!
文章提供了使用Apache POI库在Java中创建和读取Excel文件的详细代码示例,包括写入数据到Excel和从Excel读取数据的方法。
2206 0
Excel 下拉选择列表的单元格
Excel 下拉选择列表的单元格
192 0
|
11月前
|
Python
如何根据Excel某列数据为依据分成一个新的工作表
在处理Excel数据时,我们常需要根据列值将数据分到不同的工作表或文件中。本文通过Python和VBA两种方法实现该操作:使用Python的`pandas`库按年级拆分为多个文件,再通过VBA宏按班级生成新的工作表,帮助高效整理复杂数据。
|
11月前
|
数据采集 数据可视化 数据挖掘
用 Excel+Power Query 做电商数据分析:从 “每天加班整理数据” 到 “一键生成报表” 的配置教程
在电商运营中,数据是增长的关键驱动力。然而,传统的手工数据处理方式效率低下,耗费大量时间且易出错。本文介绍如何利用 Excel 中的 Power Query 工具,自动化完成电商数据的采集、清洗与分析,大幅提升数据处理效率。通过某美妆电商的实战案例,详细拆解从多平台数据整合到可视化报表生成的全流程,帮助电商从业者摆脱繁琐操作,聚焦业务增长,实现数据驱动的高效运营。
|
存储 安全 大数据
网安工程师必看!AiPy解决fscan扫描数据整理难题—多种信息快速分拣+Excel结构化存储方案
作为一名安全测试工程师,分析fscan扫描结果曾是繁琐的手动活:从海量日志中提取开放端口、漏洞信息和主机数据,耗时又易错。但现在,借助AiPy开发的GUI解析工具,只需喝杯奶茶的时间,即可将[PORT]、[SERVICE]、[VULN]、[HOST]等关键信息智能分类,并生成三份清晰的Excel报表。告别手动整理,大幅提升效率!在安全行业,工具党正碾压手动党。掌握AiPy,把时间留给真正的攻防实战!官网链接:https://www.aipyaipy.com,解锁更多用法!
|
数据采集 数据可视化 数据挖掘
利用Python自动化处理Excel数据:从基础到进阶####
本文旨在为读者提供一个全面的指南,通过Python编程语言实现Excel数据的自动化处理。无论你是初学者还是有经验的开发者,本文都将帮助你掌握Pandas和openpyxl这两个强大的库,从而提升数据处理的效率和准确性。我们将从环境设置开始,逐步深入到数据读取、清洗、分析和可视化等各个环节,最终实现一个实际的自动化项目案例。 ####
2710 10