POI 边框样式BorderStyle_poi borderstyle-程序员宅基地

技术标签: Java  poi  

POI 边框样式BorderStyle

1. 单元格边框样式

单元格边框样式包含框线样式和边框颜色,可以对单元格的四边设置不同的样式
设置单元格样式:

style.setBorderBottom(BorderStyle.DOUBLE);
style.setBottomBorderColor(IndexedColors.BLUE.getIndex());
style.setBorderLeft(BorderStyle.THICK);
style.setLeftBorderColor(IndexedColors.GREEN.getIndex());
style.setBorderRight(BorderStyle.DASH_DOT);
style.setRightBorderColor(IndexedColors.RED.getIndex());
style.setBorderTop(BorderStyle.MEDIUM);
style.setTopBorderColor(IndexedColors.ORANGE.getIndex());

2. 单元格框线样式

org.apache.poi.ss.usermodel.BorderStyle

package org.apache.poi.ss.usermodel;

/**
 * The enumeration value indicating the line style of a border in a cell,
 * i.e., whether it is bordered dash dot, dash dot dot, dashed, dotted, double, hair, medium, 
 * medium dash dot, medium dash dot dot, medium dashed, none, slant dash dot, thick or thin.
 */
 public enum BorderStyle {

    /**
     * No border (default)
     */
    NONE(0x0),

    /**
     * Thin border
     */
    THIN(0x1),

    /**
     * Medium border
     */
    MEDIUM(0x2),

    /**
     * dash border
     */
    DASHED(0x3),

    /**
     * dot border
     */
    DOTTED(0x4),

    /**
     * Thick border
     */
    THICK(0x5),

    /**
     * double-line border
     */
    DOUBLE(0x6),

    /**
     * hair-line border
     */
    HAIR(0x7),

    /**
     * Medium dashed border
     */
    MEDIUM_DASHED(0x8),

    /**
     * dash-dot border
     */
    DASH_DOT(0x9),

    /**
     * medium dash-dot border
     */
    MEDIUM_DASH_DOT(0xA),

    /**
     * dash-dot-dot border
     */
    DASH_DOT_DOT(0xB),

    /**
     * medium dash-dot-dot border
     */
    MEDIUM_DASH_DOT_DOT(0xC),

    /**
     * slanted dash-dot border
     */
    SLANTED_DASH_DOT(0xD);

    private final short code;

    private BorderStyle(int code) {
        this.code = (short)code;
    }

    public short getCode() {
        return code;
    }

    private static final BorderStyle[] _table = new BorderStyle[0xD + 1];
    static {
        for (BorderStyle c : values()) {
            _table[c.getCode()] = c;
        }
    }

    public static BorderStyle valueOf(short code) {
        return _table[code];
    }
}

3. 单元格边框实例

package hssf.sheet.border;

import java.io.BufferedOutputStream;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;

import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.ss.usermodel.BorderExtent;
import org.apache.poi.ss.usermodel.BorderStyle;
import org.apache.poi.ss.usermodel.Cell;
import org.apache.poi.ss.usermodel.CellStyle;
import org.apache.poi.ss.usermodel.IndexedColors;
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.ss.util.PropertyTemplate;

public class ExportBorderStyle {
    public static void main(String[] args) throws Exception {
        File file = new File("C:\\Users\\Administrator\\Desktop\\test.xls");
        if (file.exists()) {
            file.delete();
        }
        BufferedOutputStream out = null;
        try {
            out = new BufferedOutputStream(new FileOutputStream("C:\\Users\\Administrator\\Desktop\\test.xls"));
            exportExcel(out);
        } finally {
            out.close();
        }
    }

    /**
     * @param out
     * @throws IOException
     */
    private static void exportExcel(BufferedOutputStream out) throws IOException {
        Workbook workbook = new HSSFWorkbook();
        Sheet sheet = workbook.createSheet();
        sheet.setColumnWidth(2, 20*256);

        Row row = sheet.createRow(2);
        row.setHeightInPoints(30);
        Cell cell = row.createCell(2);
        cell.setCellValue("单元格边框样式");

        CellStyle style = workbook.createCellStyle();
        style.setBorderBottom(BorderStyle.DOUBLE);
        style.setBottomBorderColor(IndexedColors.BLUE.getIndex());
        style.setBorderLeft(BorderStyle.THICK);
        style.setLeftBorderColor(IndexedColors.GREEN.getIndex());
        style.setBorderRight(BorderStyle.DASH_DOT);
        style.setRightBorderColor(IndexedColors.RED.getIndex());
        style.setBorderTop(BorderStyle.MEDIUM);
        style.setTopBorderColor(IndexedColors.ORANGE.getIndex());
        cell.setCellStyle(style);
        workbook.write(out);
    }
}

这里写图片描述

4. 合并单元格边框样式BorderStyle

设置合并单元格边框样式,POI提供了方法:
org.apache.poi.ss.util.CellUtil

    /**
     * 设置合并单元格边框 - 线条
     * */
    private static void setBorderStyle(Sheet sheet, CellRangeAddress region) {
        // 合并单元格左边框样式
        RegionUtil.setBorderLeft(BorderStyle.THICK, region, sheet);
        RegionUtil.setLeftBorderColor(IndexedColors.BLUE.getIndex(), region, sheet);

        // 合并单元格上边框样式
        RegionUtil.setBorderTop(BorderStyle.DASH_DOT_DOT, region, sheet);
        RegionUtil.setTopBorderColor(IndexedColors.LIGHT_ORANGE.getIndex(), region, sheet);

        // 合并单元格右边框样式
        RegionUtil.setBorderRight(BorderStyle.SLANTED_DASH_DOT, region, sheet);
        RegionUtil.setRightBorderColor(IndexedColors.RED.getIndex(), region, sheet);

        // 合并单元格下边框样式
        RegionUtil.setBorderBottom(BorderStyle.MEDIUM_DASHED, region, sheet);
        RegionUtil.setBottomBorderColor(IndexedColors.GREEN.getIndex(), region, sheet);
    }

5. 合并单元格边框样式实例

package hssf.sheet.border;

import java.io.BufferedOutputStream;
import java.io.File;
import java.io.FileOutputStream;

import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.ss.usermodel.BorderStyle;
import org.apache.poi.ss.usermodel.Cell;
import org.apache.poi.ss.usermodel.HorizontalAlignment;
import org.apache.poi.ss.usermodel.IndexedColors;
import org.apache.poi.ss.usermodel.Sheet;
import org.apache.poi.ss.usermodel.VerticalAlignment;
import org.apache.poi.ss.usermodel.Workbook;
import org.apache.poi.ss.util.CellRangeAddress;
import org.apache.poi.ss.util.CellUtil;
import org.apache.poi.ss.util.RegionUtil;
import org.apache.poi.ss.util.WorkbookUtil;

public class ExportMergeCellBorderStyle {

    public static void main(String[] args) throws Exception {
        File file = new File("C:\\Users\\Administrator\\Desktop\\test.xls");
        if (file.exists()) {
            file.delete();
        }
        BufferedOutputStream out = null;
        try {
            out = new BufferedOutputStream(new FileOutputStream("C:\\Users\\Administrator\\Desktop\\test.xls"));
            exportExcel(out);
        } finally {
            out.close();
        }
    }

    private static void exportExcel(BufferedOutputStream out) throws Exception {
        Workbook workbook = new HSSFWorkbook();
        String safeSheetName = WorkbookUtil.createSafeSheetName("合并单元格边框样式");
        Sheet sheet = workbook.createSheet(safeSheetName);

        // 1.创建一个合并单元格
//      CellRangeAddress region = new CellRangeAddress(1, 9, 1, 4);
        CellRangeAddress region = CellRangeAddress.valueOf("B2:E10");
        sheet.addMergedRegion(region);

        // 2.设置合并单元格内容
        Cell cell = sheet.createRow(1).createCell(1);
        cell.setCellValue("合并单元格边框样式");

        // 设置单元格内容水平垂直居中
        CellUtil.setAlignment(cell, HorizontalAlignment.CENTER);
        CellUtil.setVerticalAlignment(cell, VerticalAlignment.CENTER);

        // 3.设置合并单元格边框
        setBorderStyle(sheet, region);

        workbook.write(out);
    }

    /**
     * 设置合并单元格边框 - 线条
     * */
    private static void setBorderStyle(Sheet sheet, CellRangeAddress region) {
        // 合并单元格左边框样式
        RegionUtil.setBorderLeft(BorderStyle.THICK, region, sheet);
        RegionUtil.setLeftBorderColor(IndexedColors.BLUE.getIndex(), region, sheet);

        // 合并单元格上边框样式
        RegionUtil.setBorderTop(BorderStyle.DASH_DOT_DOT, region, sheet);
        RegionUtil.setTopBorderColor(IndexedColors.LIGHT_ORANGE.getIndex(), region, sheet);

        // 合并单元格右边框样式
        RegionUtil.setBorderRight(BorderStyle.SLANTED_DASH_DOT, region, sheet);
        RegionUtil.setRightBorderColor(IndexedColors.RED.getIndex(), region, sheet);

        // 合并单元格下边框样式
        RegionUtil.setBorderBottom(BorderStyle.MEDIUM_DASHED, region, sheet);
        RegionUtil.setBottomBorderColor(IndexedColors.GREEN.getIndex(), region, sheet);
    }

}

这里写图片描述

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/qq_38780765/article/details/105071048

智能推荐

jmu-Java-07多线程-Runnable与匿名类_6-1 jmu-java-07多线程-runnable与匿名类-程序员宅基地

文章浏览阅读902次,点赞2次,收藏3次。题目详情:6-1 jmu-Java-07多线程-Runnable与匿名类 (10 分)在Main方法中启动一个线程t1,该线程输出3行信息:主线程名 线程t1的线程名 线程t1所实现的所有接口。提示:使用System.out.println(Arrays.toString(getClass().getInterfaces()));输出。注:本题也可使用Lambda表达式实现。裁判测试程序:public class Main { public static void_6-1 jmu-java-07多线程-runnable与匿名类

[论文阅读] (07) RAID2020 Cyber Threat Intelligence Modeling Based on Heterogeneous GCN_cyber threat prediction using dynamic heterogeneou-程序员宅基地

文章浏览阅读6.7k次,点赞7次,收藏15次。前一篇文章分享了生成对抗网络GAN的基础知识,包括什么是GAN、常用算法(CGAN、DCGAN、infoGAN、WGAN)、发展历程、预备知识,并通过Keras搭建最简答的手写数字图片生成案例。这篇文章将详细介绍北航老师发表在RAID 2020上的论文《Cyber Threat Intelligence Modeling Based on Heterogeneous Graph Convolutional Network》,基于异构图卷积网络的网络威胁情报建模。希望这篇文章对您有所帮助。_cyber threat prediction using dynamic heterogeneous graph learning

Python三次样条插值与MATLAB三次样条插值简单案例_splev函数matlab-程序员宅基地

文章浏览阅读7.3k次,点赞7次,收藏51次。1 三次样条插值早期工程师制图时,把富有弹性的细长木条(所谓样条)用压铁固定在样点上,在其他地方让它自由弯曲,然后沿木条画下曲线,成为样条曲线。设函数S(x)∈C2[a,b] ,且在每个小区间[xj, xj+1]上是三次多项式,其中a=x0<x1<...<xn=b 是给定节点,则称S(x)是节点x0,x1,...xn上的三次样条函数。若在节点xj上给定函数值yj=f(xj..._splev函数matlab

Hadoop集群搭建所遇到的一些问题_error org.apache.hadoop.security.token.delegation.-程序员宅基地

文章浏览阅读3.9k次,点赞3次,收藏8次。1.命令找不到环境变量配置的不正确.2.权限问题2.1 /home/hadoop目录权限2.1 创建完hadoop用后/home/hadoop目录权限问题./home/Hadoop2.2 秘钥文件权限1.如下图的提示,是当前hadoop用的公钥没有添加到认证文件中去解决方法:将node1节点上的hadoop用户的公钥添加到认证文件中[hadoop@node1 ~]$ chmod -R 755 .ssh/[hadoop@node1 ~]$ cd .ssh/[hadoop@node_error org.apache.hadoop.security.token.delegation.abstractdelegationtokensec

ModuleNotFoundError: No module named ‘ahocorasick‘,亲测100%有效_modulenotfounderror: no module named 'ahocorasick-程序员宅基地

文章浏览阅读2.3k次,点赞10次,收藏10次。ModuleNotFoundError: No module named ‘ahocorasick‘,安装:pip install pyahocorasick -i HTTPS://mirrors.aliyun.com/pypi/simple/下面是我在安装是遇到的要安装最近在搞自然语言处理的知识图谱但是在搭建系统的时候使用了一个AC自动机词过滤,就是去掉敏感词汇就比如这些敏感词汇,需要将他替换成为**等一些隐含词或者符号。这个有许多的方法,这里列举几个:- 1、AC自动机- 2、DFA_modulenotfounderror: no module named 'ahocorasick

随便推点

OpenGLES demo - 11. 透视投影变换_opengles 透视变换-程序员宅基地

文章浏览阅读1.7k次。这章介绍一下透视投影变换,一个物体经过了透视投影变换之后,就会有jindayuan_opengles 透视变换

大数取模运算Barrett reduction-程序员宅基地

文章浏览阅读1.3w次,点赞11次,收藏40次。Barrett reduction算法的证明和使用。作者刚做完了课程设计作业,闲来无事写篇文章。大数中的指数运算,需要对一个数进行取模,因为最大可能二进制下2048位的2048位次方,所以必须边做乘法边取模。乘法使用快速幂,如果底数位数是x,指数位数是e,底数足够大的话,复杂度取决于模数,模数是m位的话,复杂度是O(m*m*e)。程序里,大数的存储是2的32次方进制的,这里..._barrett reduction

MIT 线性代数导论 第二讲:矩阵消元_方程组\left\{ \begin{matrix}3x - 4y = k + 1\\2x + 3y -程序员宅基地

文章浏览阅读367次。第二讲的主要内容:线性方程组的消元法使用矩阵语言表示消元过程向量、矩阵乘的理解置换矩阵的概念初步逆矩阵的概念线性方程组的消元法例子:{x+2y+z=23x+8y+z=124y+z=2\left\{\begin{matrix}x+2y+z=2\\ 3x+8y+z=12\\ 4y+z=2\end{matrix}\right.⎩⎨⎧​x+2y+z=23x+8y+z=12..._方程组\left\{ \begin{matrix}3x - 4y = k + 1\\2x + 3y = 5\end{matrix}\right.{ 3x 4y=k+1 2x+3y=5 的解中x与y的值相等,则k等于( ) a -1 b -2 c -3 d -4 查看提示

macOS下配置环境变量/查看环境变量_mac查看环境变量-程序员宅基地

文章浏览阅读4.8w次,点赞27次,收藏98次。Mac OS 的配置文件清单a. /etc/profile b. /etc/paths c. ~/.bash_profile d. ~/.bash_login e. ~/.profile f. ~/.bashrc 终端如何查看java的安装目录?输入命令:/usr/libexec/java_home -V如何查看java的版本信息?输入命令:java -version如何查看Mac的全部环境变量输入命令 export,查看全部的环境变量如何设置系统环境变量?系统环境变量应该在_mac查看环境变量

table表格------一行隐藏和显示_让row里面的内容成一行显示超出隐藏-程序员宅基地

文章浏览阅读5k次。这个功能是table原生js操作一行表_让row里面的内容成一行显示超出隐藏

使用C#使用Windows的HID通信-程序员宅基地

文章浏览阅读2k次。Windows使用HID通信相对比较简单,HID都是通过PID、VID信息来查找连接的,相比于串口,几乎无变化,连接无需人工选择,十分方便,也不需要驱动。下面上实例,PID为0x003f,VID为0x04D8,支持发送接收数据显示到UI,使用C#来编写,调用的是windows api(create file、read file、write file)。本实例将HID接口分成3层,支持自动连接..._c# hid 指定pid和vid

推荐文章

热门文章

相关标签