通过一个实例演示怎样通过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. VS2010设置C++包含目录和库目录

    视图-属性管理器-随便选择一个项目例如MyProject-Debug|Win32-Microsoft.Cpp.Win32.user-右键“属性”-VC++目录 Release同理

  2. MFC dfs遍历文件

    //如果涉及到大文件的遍历(大于4GB),可以将以下代码_finddata_t换成__finddata64_t,_findfirst换成_findfirst64,_findnext换成_findnex ...

  3. Android Design 4.4中文版发布

    “两年前的今天,我们发布了 Android Design 中文版(旧闻链接). 随着 Android 系统的发展,界面和设计语言都不断的发生变化.韶华易逝.光阴苒冉,Android 进化到了 4.4 ...

  4. Hudson可扩展持续集成引擎

    参考文章:http://blog.csdn.net/dazhi_100/article/details/11629133 极限编程中一项建议实践便是持续集成,持续集成是指在开发阶段,对项目进行持续性自 ...

  5. 解决Exception in thread "main" java.lang.UnsupportedClassVersionError: org/apache/maven/cli/MavenCli : Unsupported major.minor version 51.0

    jdk问题 解决方案: 更换IDE的jdk

  6. IDE整理

    1.eclipse 下载地址:http://www.eclipse.org/downloads/     2.myeclipse 下载地址:http://www.myeclipseide.com/mo ...

  7. MySQL主备库切换(MHA)演练与总结

      演练包括被动切换和主动切换两部分.被动切换是主库宕机,主动切换是人工手动触发.   演练步骤大致如下:       1 先停掉主库,模拟主库宕机     2 mha将vip切到备库,备库变成主库, ...

  8. Android textView点击滚动(跑马灯)效果

    布局文件: <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:to ...

  9. Android常用布局

    FrameLayout(框架布局):从屏幕的左上角开始显示对象,一个覆盖一个,主要用于选项卡视图和图像切换器.# 所有的组件都放在屏幕的左上角,并且以层叠进行显示. LinearLayout(线性布局 ...

  10. 属性动画PropertyAnimation

    xml实现 <?xml version="1.0" encoding="utf-8"?> <set xmlns:android="h ...