通过一个实例演示怎样通过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. javascript十六进制数字和ASCII字符之间转换

    var hex="0x29";//十六进制 var charValue = String.fromCharCode(hex);//生成Unicode字符 var charCode ...

  2. Linux 中文乱码问题

    弄了好久还是乱码 最终方法:进入 vim /etc/vimrc中 原先只有一个 set encoding=utf-8 fileencodings=ucs-bom,utf-8,cp936改成: let ...

  3. Android Bander设计与实现 - 设计篇

    转自:http://blog.csdn.net/universus/article/details/6211589#t7 Binder Android IPC Linux 内核 驱动 摘要 Binde ...

  4. 移除IIS默认的响应头

    在IIS+ASP.NET的运行环境,默认情况下会输出以下的响应头(Response Headers): 那如何移除这些响应头呢?下面我们来一个一个移除. 1. 移除Server 借助IIS URL R ...

  5. 手把手教你在Windows下使用MinGW编译libav(参考libx264的编入)

    转自:http://www.th7.cn/Program/cp/201407/242762.shtml 手把手教你在Windows下使用MinGW编译libav libav是在Linux下使用纯c语言 ...

  6. SQL Server:分离和重新附加数据库

    对于分离一个数据库来说,我们可以用Manage Studio界面或者存储过程.但是对于每一种方法都必须保证没有用户使用这个数据库.接下来所讲的都是对于用命令来分离或附加一个数据库.对于用Manage ...

  7. Java中单元测试中:@BeforeClass,@Before,@Test,@After,@AfterClass中的问题详解

    在Junit4中还有的测试注解有:  @BeforeClass ,@Before,@Test,@After,@AfterClass 1.其中:@BeforeClass,@AfterClass是Juni ...

  8. 【HTML5】Web存储

    HTML5 提供了两种在客户端存储数据的新方法: localStorage - 没有时间限制的数据存储 sessionStorage - 针对一个 session 的数据存储 之前,这些都是由 coo ...

  9. awk命令

    awk 手册   原文 Table of Contents 1. awk简介 2. awk命令格式和选项 2.1. awk的语法有两种形式 2.2. 命令选项 3. 模式和操作 3.1. 模式 3.2 ...

  10. Oracle 使用小计(3)

      1.出错处理 ORA-00911: invalid character. 这是因为在语句末尾加上了";"的缘故,去掉";"SQL就可以执行了~ (这与SQL ...