POI实战-java开发excel详解(第五章 样式)

本文详细介绍了使用Apache POI库在Java中设置Excel样式的各个方面,包括单元格边框、背景色、字体格式、对齐方式、数字格式化、宽度高度调整以及合并单元格样式。通过示例代码展示了如何实现各种样式效果。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

5.POI样式

在Excel应用中,会需要用到各种样式,包括单元格背景色、边框、高度、宽度、内容相对位置、字体格式、字体大小、字体颜色等等。POI提供了一系列的样式,能满足我们一般开发中的需求。

5.1 POI样式相关类

POI设置Excel样式主要通过以下几个相关类:

参数

说明

HSSFCellStyle

POI样式类

HSSFFont

字体样式类

HSSFColor

颜色类

HSSFBorderFormatting

边框样式类

HSSFCellStyle是最基本的样式类。HSSFCellStyle可以直接对上下左右四个边框、内容相对位置、单元格背景色、单元格填充方式、数字格式等进行设置。

HSSFFont是字体样式类,需set到HSSFCellStyle生效。HSSFFont可以设置字体样式、字体大小、字体颜色等。

HSSFColor是颜色类,该类里面有大部分基本颜色属性,提供基本颜色的直接调用。

5.2 单元格边框样式

单元格边框分为上、下、左、右四部分,可以设置其边框的宽度、样式及颜色。边框默认为无边框,若加上边框默认为黑色。

现在为一行10个单元格全部加上边框(细),并设置颜色为红色。

代码片段:

      public static HSSFWorkbook write(InputStream inputStream) throws IOException, ClassNotFoundException{

            //初始一个workbook

            HSSFWorkbook workbook = new HSSFWorkbook(inputStream);

            //获取样式

            HSSFCellStyle style = createCellStyle(workbook);

            //创建一个sheet

            HSSFSheet sheet = workbook.getSheetAt(0);

            HSSFRow row = sheet.createRow(1);

            for(int cellnum = 0; cellnum < 10; cellnum++){

                  HSSFCell cell = row.createCell(cellnum);

                  cell.setCellStyle(style);

            }

            return workbook;

      }

     

      /**

       * 设置单元格的边框(细)且为红色

       * @param workbook

       * @param cellnum

       * @return

       */

      public static HSSFCellStyle createCellStyle(HSSFWorkbook workbook){

            HSSFCellStyle style = workbook.createCellStyle();

            //设置上下左右四个边框宽度

            style.setBorderTop(HSSFBorderFormatting.BORDER_THIN);

            style.setBorderBottom(HSSFBorderFormatting.BORDER_THIN);

            style.setBorderLeft(HSSFBorderFormatting.BORDER_THIN);

            style.setBorderRight(HSSFBorderFormatting.BORDER_THIN);

            //设置上下左右四个边框颜色

            style.setTopBorderColor(HSSFColor.RED.index);

            style.setBottomBorderColor(HSSFColor.RED.index);

            style.setLeftBorderColor(HSSFColor.RED.index);

            style.setRightBorderColor(HSSFColor.RED.index);

           

            return style;

      }

输出结果:

图24

5.3 单元格背景色

单元格背景色填充涉及到填充颜色和填充方式,现以最常用的填充方式填充天蓝色背景。

代码片段:

在上面代码中加入:

//设置单元格背景色

            style.setFillForegroundColor(HSSFColor.SKY_BLUE.index);

            style.setFillPattern(HSSFCellStyle.SOLID_FOREGROUND);

输出结果:

图25

注:单元格背景色暂不做详解,在附录中我会列出颜色作为开发参考。

5.4 单元格字体格式

字体格式包括书写体、颜色、大小、加粗、斜体、下划线、删除线等。

以下为POI中字体默认属性:

字体属性

Default

书写体

宋体

颜色

黑色

大小

12 有待考证

加粗

斜体

下划线

删除线

 

现将字体设置为幼圆、9px、颜色黄色、加粗、斜体、下划线、删除线作为示例。

代码片段:

在上面代码中加入:

设置数据到单元格代码片段(略)

 

//设置字体格式

            HSSFFont font = workbook.createFont();

            font.setFontName("幼圆");

            font.setFontHeightInPoints((short)9);

            font.setColor(HSSFColor.YELLOW.index);

            font.setBoldweight(font.BOLDWEIGHT_BOLD);

            font.setItalic(true);

            font.setStrikeout(true);

            font.setUnderline((byte)1);

            //将字体格式设置到HSSFCellStyle

            style.setFont(font);

 

输出结果:

图26

5.5 单元格对齐方式

单元格的对齐方式是针对单元格中的内容,单元格中的内容可以靠左、靠右、靠上、靠下、以及垂直居中、水平居中等等。

针对以上各种对齐方式,将目前6.4中输出结果Excel基础上进行微调后操作,将目前基本对齐方式进行展示。

代码片段:

public static HSSFWorkbook write(InputStream inputStream) throws IOException, ClassNotFoundException{

            //初始一个workbook

            HSSFWorkbook workbook = new HSSFWorkbook(inputStream);

            //创建一个sheet

            HSSFSheet sheet = workbook.getSheetAt(0);

            HSSFRow row = sheet.getRow(1);

      &nbs

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值