POI格式化Cell样式

【java】读取、创建和修改Excel文件 Apache POI库中的核心包,用于读取、创建和修改Excel文件。 阅读详情
通过一个实例演示怎样通过POI设置Excel单元格的边框、字体、颜色、大小、下划线、合并、对齐方式。

Excel文件如下:

 

Java代码  复制代码  收藏代码 
package my.excel;    
   
import java.io.FileOutputStream;    
   
import org.apache.poi.ss.usermodel.Cell;    
import org.apache.poi.ss.usermodel.CellStyle;    
import org.apache.poi.ss.usermodel.Font;    
import org.apache.poi.ss.usermodel.Row;    
import org.apache.poi.ss.usermodel.Sheet;    
import org.apache.poi.ss.usermodel.Workbook;    
import org.apache.poi.ss.util.CellRangeAddress;    
import org.apache.poi.xssf.usermodel.XSSFCellStyle;    
import org.apache.poi.xssf.usermodel.XSSFColor;    
import org.apache.poi.xssf.usermodel.XSSFWorkbook;    
   
 
public class CellFormatExcel {    
          
      public static void main(String[] args) {    
            try {    
                  // 创建Excel表格工作簿    
                  Workbook wb = new XSSFWorkbook();    
                  Sheet sheet = wb.createSheet("表格单元格格式化");    
                      
                  //============================    
                  //          设置单元格的字体    
                  //============================    
                  Row ztRow = sheet.createRow((short)0);    
                  Cell ztCell = ztRow.createCell(0);    
                  ztCell.setCellValue("中国");    
                  // 创建单元格样式对象    
                  XSSFCellStyle ztStyle = (XSSFCellStyle) wb.createCellStyle();    
                  // 创建字体对象    
                  Font ztFont = wb.createFont();    
                  ztFont.setItalic(true);                               // 设置字体为斜体字    
                  ztFont.setColor(Font.COLOR_RED);                  // 将字体设置为“红色”    
                  ztFont.setFontHeightInPoints((short)22);      // 将字体大小设置为18px    
                  ztFont.setFontName("华文行楷");                   // 将“华文行楷”字体应用到当前单元格上    
                  ztFont.setUnderline(Font.U_DOUBLE);             // 添加(Font.U_SINGLE单条下划线/Font.U_DOUBLE双条下划线)    
//               ztFont.setStrikeout(true);                           // 是否添加删除线    
                  ztStyle.setFont(ztFont);                              // 将字体应用到样式上面    
                  ztCell.setCellStyle(ztStyle);                      // 样式应用到该单元格上    
                      
                  //============================    
                  //            设置单元格边框    
                  //============================    
                  Row borderRow = sheet.createRow(2);    
                  Cell borderCell = borderRow.createCell(1);    
                  borderCell.setCellValue("中国");    
                  // 创建单元格样式对象    
                  XSSFCellStyle borderStyle = (XSSFCellStyle)wb.createCellStyle();    
                  // 设置单元格边框样式    
                  // CellStyle.BORDER_DOUBLE         双边线    
                  // CellStyle.BORDER_THIN            细边线    
                  // CellStyle.BORDER_MEDIUM         中等边线    
                  // CellStyle.BORDER_DASHED         虚线边线    
                  // CellStyle.BORDER_HAIR            小圆点虚线边线    
                  // CellStyle.BORDER_THICK          粗边线    
                  borderStyle.setBorderBottom(CellStyle.BORDER_THICK);    
                  borderStyle.setBorderTop(CellStyle.BORDER_DASHED);    
                  borderStyle.setBorderLeft(CellStyle.BORDER_DOUBLE);    
                  borderStyle.setBorderRight(CellStyle.BORDER_THIN);    
                      
                  // 设置单元格边框颜色    
                  borderStyle.setBottomBorderColor(new XSSFColor(java.awt.Color.RED));    
                  borderStyle.setTopBorderColor(new XSSFColor(java.awt.Color.GREEN));    
                  borderStyle.setLeftBorderColor(new XSSFColor(java.awt.Color.BLUE));    
                      
                  borderCell.setCellStyle(borderStyle);    
                      
                  //============================    
                  //         设置单元内容的对齐方式    
                  //============================    
                  Row alignRow = sheet.createRow(4);    
                  Cell alignCell = alignRow.createCell(1);    
                  alignCell.setCellValue("中国");    
                      
                  // 创建单元格样式对象    
                  XSSFCellStyle alignStyle = (XSSFCellStyle)wb.createCellStyle();    
                      
                  // 设置单元格内容水平对其方式    
                  // XSSFCellStyle.ALIGN_CENTER          居中对齐    
                  // XSSFCellStyle.ALIGN_LEFT             左对齐    
                  // XSSFCellStyle.ALIGN_RIGHT            右对齐    
                  alignStyle.setAlignment(XSSFCellStyle.ALIGN_CENTER);    
                      
                  // 设置单元格内容垂直对其方式    
                  // XSSFCellStyle.VERTICAL_TOP          上对齐    
                  // XSSFCellStyle.VERTICAL_CENTER      中对齐    
                  // XSSFCellStyle.VERTICAL_BOTTOM      下对齐    
                  alignStyle.setVerticalAlignment(XSSFCellStyle.VERTICAL_CENTER);    
                      
                  alignCell.setCellStyle(alignStyle);    
                      
                  //============================    
                  //         设置单元格的高度和宽度    
                  //============================    
                  Row sizeRow = sheet.createRow(6);    
                  sizeRow.setHeightInPoints(30);                           // 设置行的高度    
                      
                  Cell sizeCell = sizeRow.createCell(1);       
                  String sizeCellValue = "《Java编程思想》";                  // 字符串的长度为10,表示该字符串中有10个字符,忽略中英文    
                  sizeCell.setCellValue(sizeCellValue);          
                  // 设置单元格的长度为sizeCellVlue的长度。而sheet.setColumnWidth使用sizeCellVlue的字节数    
                  // sizeCellValue.getBytes().length == 16    
                  sheet.setColumnWidth(1, (sizeCellValue.getBytes().length) * 256 );    
                      
                  //============================    
                  //         设置单元格自动换行    
                  //============================    
                  Row wrapRow = sheet.createRow(8);    
                  Cell wrapCell = wrapRow.createCell(2);    
                  wrapCell.setCellValue("宝剑锋从磨砺出,梅花香自苦寒来");    
                      
                  // 创建单元格样式对象    
                  XSSFCellStyle wrapStyle = (XSSFCellStyle)wb.createCellStyle();    
                  wrapStyle.setWrapText(true);                              // 设置单元格内容是否自动换行    
                  wrapCell.setCellStyle(wrapStyle);    
                      
                  //============================    
                  //             合并单元格列    
                  //============================    
                  Row regionRow = sheet.createRow(12);    
                  Cell regionCell = regionRow.createCell(0);    
                  regionCell.setCellValue("宝剑锋从磨砺出,梅花香自苦寒来");    
                      
                  // 合并第十三行中的A、B、C三列    
                  CellRangeAddress region = new CellRangeAddress(12, 12, 0, 2); // 参数都是从O开始    
                  sheet.addMergedRegion(region);    
                      
                  //============================    
                  //             合并单元格行和列    
                  //============================    
                  Row regionRow2 = sheet.createRow(13);    
                  Cell regionCell2 = regionRow2.createCell(3);    
                  String region2Value = "宝剑锋从磨砺出,梅花香自苦寒来。"  
                                                + "采得百花成蜜后,为谁辛苦为谁甜。"  
                                                + "操千曲而后晓声,观千剑而后识器。"  
                                                + "察己则可以知人,察今则可以知古。";    
                  regionCell2.setCellValue(region2Value);    
                      
                  // 合并第十三行中的A、B、C三列    
                  CellRangeAddress region2 = new CellRangeAddress(13, 17, 3, 7); // 参数都是从O开始    
                  sheet.addMergedRegion(region2);    
                      
                  XSSFCellStyle region2Style = (XSSFCellStyle)wb.createCellStyle();    
                  region2Style.setVerticalAlignment(CellStyle.VERTICAL_CENTER);    
                  region2Style.setWrapText(true);                               // 设置单元格内容是否自动换行    
                  regionCell2.setCellStyle(region2Style);    
                                        
                  //============================    
                  // 将Excel文件写入到磁盘上    
                  //============================    
                  FileOutputStream is = new FileOutputStream("document/CellFormatExcel.xlsx");    
                  wb.write(is);    
                  is.close();    
                      
                  System.out.println("写入成功,运行结束!");    
            } catch(Exception e) {    
                  e.printStackTrace();    
            }    
      }    
} 
POI实现Excel导出时常用方法说明 场景 SpringBoot中使用POI实现自定义Excel布局式导出 https://blog.youkuaiyun.com/BADAO_LIUMANG_QIZHI/article/details/89497792 实现 新建XSSFWorkbook对象 XSSFWorkbook book=new XSSFWorkbook(); 新建sheet页 Sheet tempSheet = null... 阅读详情

相关推荐

RK3588 EVB开发板原理图讲解【六】

该原理图展示了eMMC Flash与主控芯片之间的连接关系,以及相关的电源、信号线路和去耦电容等。

weixin_48721556的博客 1170

记录一次工作中的问题以及解决(POI对于Excel的数据导出覆盖问题)

问题: 使用POI的向excel中插入表格,发现在同一行中分开多次插入表格会出现表格被覆盖的问题。 解决方式: 导致这个问题的主要原因是因为我将插入表格的方法封装成了一个工具类,在每次对excel进行写入的时候都会new row = sheet.createRow(row1);每次都创建新的行对象导致写入之后出现覆盖的问题。所以我就在创建行对象之前,对先判断表格中的行对象是否存在,存在就直接get,不存在再进行创建。 ps:后续我又发现写入图片也存在类似的问题,但没有得到好的解决办法,只能将图片写入到不

weixin_43972529的博客 1897

01 AUTOSAR CP标准文档阅读指南

01 AUTOSAR CP标准文档阅读指南

汽车软件工程师 | 好奇博主 | 处女座 1134

XSSFWorkbook设置单元格格式

设置单元格边框样式

当作记事本用 3961

SillyTavern 向量存储配置踩坑记:从卡死到本地部署 Ollama 跑通

用此命令看到镜像就算成功。

qq_62483451的博客 1259

5、数据计算与处理技巧全解析

本文深入解析了Tableau中的多种数据计算与处理技巧,涵盖LOD计算、日期与字符串处理、计数优化、数据混合限制及自定义总计等核心内容。通过实际案例和流程图,系统讲解了各技巧的应用场景、实现步骤与注意事项,并提供性能优化建议和常见问题解答,帮助用户提升数据分析效率与可视化精度。同时展望了未来数据计算技术的发展趋势,是Tableau用户进阶必备的全面指南。

peach的博客 82

poi操作Excel

原文地址http://blog.youkuaiyun.com/sdm_seven/article/details/8348359 java读取excel文件的顺序是:  Excel文件->工作表->行->单元格 对应到POI中,为:workbook->sheet->row->cell  注意:  注意:       1.sheet, 以0开始,以workbook.getNumberOfSheets(

天外来客的博客 1431

【深度学习驱动流体力学】Python流体力学Ansys Fluent

PyFluent 是一个将 Python 编程语言与 Ansys Fluent 流体动力学 (CFD) 仿真软件集成的工具。它允许用户通过 Python 脚本来控制和自动化 Fluent 中的仿真任务,实现从预处理、求解到后处理的全流程控制。PyFluent 结合了 Python 的灵活性和 Fluent 的强大功能,提供了一种高效且灵活的 CFD 仿真方法。PyFluent 是一个强大而灵活的工具,使用户能够通过 Python 脚本全面利用 Ansys Fluent 的功能。

源代码杀手的博客 3123

C# 之 使用XSSFWorkbook 设置单元格样式

1.设置单元格字体格式:IFont IFont ifont = hssfworkbook.CreateFont(); ifont1.Boldweight=(short)FontBoldWeight.Bold;//加粗 字体:ifont .fontname 字体颜色:ifont.color 字号:ifont.FontHightInpoints=(sho

liyaodong1234的博客 1万+

YOLOv11改进 | 注意力篇 | YOLOv11引入24年ECCV的自调制特征聚合注意力模块(SMFA),并构建C2PSA_SMFA

1.SMFA介绍1.1 摘要:基于Transformer的图像复原方法由于Transformer的自注意(self-attention,SA)特性能够更好地挖掘非局部信息,从而获得更好的高分辨率图像重建效果,因此具有重要的应用价值。然而,关键点积SA需要大量的计算资源,这限制了其在低功耗器件中的应用。此外,模拟退火机制的低通特性限制了其捕获局部细节的能力,从而导致平滑的重建结果。

tsg6698的博客 952

Sentaurus TCAD建模:宽温区n型FinFET模型校准与低温仿真分析

本文基于Sentaurus TCAD平台,建立了n型FinFET的宽温区(233K-393K)仿真模型,解决了低温(73K-193K)仿真失效问题。研究对比了Sprocess工艺仿真与SDE几何建模两种方法,分析了载流子冻析效应、不完全电离和迁移率退化等低温物理机制。通过优化模型参数,实现了在233K、313K和393K条件下仿真误差小于10%,并建立了符合物理趋势的低温外推模型。研究提供了完整的Sentaurus TCAD代码实现,包括器件结构定义、物理模型配置和温度相关参数校准,为宽温区FinFET仿真

huanghm88的专栏 264

POI格式化Cell样式4.1.2版本

文章代码来自:https://blog.youkuaiyun.com/q394895302/article/details/84225761 对POI的版本兼容做出修改。 poi版本 <dependency> <groupId>org.apache.poi</groupId> <artifactId>poi</artifactId> <version>4.1.2</version> </dependency> &l.

akiaug的日录 4149

领域知识图谱构建的技术流程

因此概念的属性定义十分重要,通常大部分知识库中的概念属性都是采用人工定义等方式生成的,通用知识图谱则可以从开放数据集中获取概念的属性,然后从在线百科中学习实体的属性,并对实体属性进行往上规约从而生成概念的属性。由于百科的分类体系都是经过了百科管理员或是高级编辑人员的校验,其分类系统中的数据可靠性非常高,因此从百科中抽取概念和实体,通常将标题作为实体的候选,而将百科中的分类系统直接作为概念的候选。为了对知识进行合理的组织,更好地描述知识本身与知识之间的关联,需要对知识图谱的模式进行良好的定义。

weixin_43961909的博客 334

使用POI来格式化Cell单元格样式

来源:http://www.hxstrive.com/article/6.htm   在实际工作中避免不了要导出EXCEL,导出的同时可能需要进行字体调整、合并、对其等。常见的java Excel导出工具有JXL和POI。通过一个实例演示怎样通过POI设置Excel单元格的边框、字体、颜色、大小、下划线、合并、对齐方式。希望对你能够有帮助。 运行后的效果图如下: Java代码如下: packa...

ubuntulinuxjava的专栏 991

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

上一篇: POI技术(一)
下一篇: 数据集store
hello人才
博客等级 码龄15年 1粉丝 1原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值