通过一个实例演示怎样通过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格式化Cell样式的更多相关文章

  1. HTML5 格式化、样式、链接、表格

    HTML格式化.样式.链接.表格的使用举例

  2. POI 设置Excel样式(转)

    POI 设置Excel样式 POI中可能会用到一些需要设置EXCEL单元格格式的操作小结: 先获取工作薄对象: HSSFWorkbook wb = new HSSFWorkbook(); HSSFSh ...

  3. Myeclipse代码格式化的样式和保存自动格式化

    第一种方法:下载格式化代码样式文件,参考这位老兄的方法(包含了保存自动格式化):http://blog.csdn.net/u010028869/article/details/49780515   下 ...

  4. POI使用cell.getCellStyle()设置指定单元格颜色,但是其它没有指定的单元格也会变色

    HSSFCell cell = row.createCell((short)i); cell.getCellStyle().setAlignment(HSSFCellStyle.ALIGN_RIGHT ...

  5. POI Excel导出样式设置

    HSSFSheet sheet = workbook.createSheet("sheetName");    //创建sheet sheet.setVerticallyCente ...

  6. POI 中Cell的backgroundcolor和foregroundcolor

    刚开始以为要获得cell的背景色是使用  getFillBackgroundColor()这个函数(这里返回的是调色板的索引,要获得RGB需要先获得系统的Pallete,然后在获得 RGB).结果出来 ...

  7. POI中excle样式怎么写

    POI中可能会用到一些需要设置EXCEL单元格格式的操作小结: 先获取工作薄对象: HSSFWorkbook wb = new HSSFWorkbook(); HSSFSheet sheet = wb ...

  8. Poi设置列样式

    最近做的项目中用到Poi导出Excel文件做模板,其中有的列需要设置为文本格式,查资料发现都是给单元格设置样式,由于是模板单元格都没内容,所以不能通过设置单元格式样式的方式操作,网上有说法是不能设置列 ...

  9. POI CellStyle 中样式覆盖问题

    问题描述 在使用 Apache POI-3.8的时候,需要一个功能,就是处理上传得 Excel的 cell style.如果数据有错误,则标红或者加上其他 style 标识.但是当直接获取到 cell ...

随机推荐

  1. Java中ArrayList的自我实现

    对于ArrayList相比大家都很熟悉,它是java中最常用的集合之一.下面就给出它的自我实现的java代码. 需要说明的一点是,它是基于数组创建的.所以它在内存中是顺序存储,对于查找十分的方便. p ...

  2. KMP模式匹配_2

    http://blog.csdn.net/lin_bei/article/details/1252686 三. 怎么求串的模式值next[n] 定义: (1)next[0]= -1 意义:任何串的第一 ...

  3. Android之UI控件

    本文主要包括以下内容 Spinner的使用 Gallery的使用 Spinner的使用 Spinner的实现过程是 1. 在xml文件中定义Spinner的控件 2. 在activity中获取Spin ...

  4. primace 5.0软件的Debug ware 功能的使用方法简介

    用primace 软件已经一年多了,一直不知道Debug ware 软件怎么使用,上周终于逮住FAE请教了下这个功能的使用方法.发现这个功能和signalTap ii 原理不一样,这个是非时事的波形, ...

  5. Primace 5.0软件与KEIL单片机软件联合在线仿真步骤

    Primace 软件是CME(京微雅格)公司的FPGA芯片开发专用软件.因为CME的FPGA,如M5.M7等内嵌有8051核,所以可以和MCU联合在线仿真,虽然FPGA内的程序不可控,不能一步一步的仿 ...

  6. p188习题2

  7. [译]SQL Server 之 查询计划缓存和重编译

    查询优化是一个复杂而且耗时的操作,所以SQL Server需要重用现有的查询计划.查询计划的缓存和重用在多数情况下是有益的的,但是在某些特殊的情况下,重编译一个查询计划可能能够改善性能. SELECT ...

  8. 2016"百度之星" - 初赛(Astar Round2A)

    题目链接: http://bestcoder.hdu.edu.cn/contests/contest_show.php?cid=701 1001 : 矩阵快速幂 #include <iostre ...

  9. javascript正则表达式速查

    声明:本文为原创文章,如需转载,请注明来源并保留原文链接前端小尚,谢谢! 作用 数据有效性验证 替换文本 提取文本 声明方式 字面量的声明方式 示例:var re = /a/gi; RegExp声明方 ...

  10. 误删除了mssql的表。 使用命令:drop table xxxx

    使用ApexSQL Recover工具进行恢复.教程如下: http://solutioncenter.apexsql.com/zh/%E6%B2%A1%E6%9C%89%E5%A4%87%E4%BB ...