POI格式化Cell样式

通过一个实例演示怎样通过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();

}

}

}

时间: 2024-10-04 06:40:29

POI格式化Cell样式的相关文章

POI 设置Excel样式(转)

POI 设置Excel样式 POI中可能会用到一些需要设置EXCEL单元格格式的操作小结: 先获取工作薄对象: HSSFWorkbook wb = new HSSFWorkbook(); HSSFSheet sheet = wb.createSheet(); HSSFCellStyle setBorder = wb.createCellStyle(); 一.设置背景色: setBorder.setFillForegroundColor((short) 13);// 设置背景色setBorder.

【API Guides】Android字符串资源的格式化和样式

转载请注明出处:http://blog.csdn.net/zhaokaiqiang1992 本文章翻译自Android开发指导,介绍了如何对字符串资源进行格式化和设置不同的样式. 想看原文,请戳这里 字符串资源的格式化和样式 小心撇号和引用号的坑 格式化字符串 用HTML添加样式 字符串资源的格式化和样式 小心撇号和引用号的坑 如果我们的字符串资源里面有撇号('),那么我们必须加上转移字符,变成这个样子(\'),或者是在字符串的外面包裹上一对引号.我们下面看个例子: <string name=&qu

Poi设置列样式

最近做的项目中用到Poi导出Excel文件做模板,其中有的列需要设置为文本格式,查资料发现都是给单元格设置样式,由于是模板单元格都没内容,所以不能通过设置单元格式样式的方式操作,网上有说法是不能设置列样式,颇为失望. 没想到自己偶然在sheet的联想列表中发现这个: 马上试用,问题迎刃而解~ HSSFCellStyle idNoStyle = workbook.createCellStyle(); HSSFDataFormat format = workbook.createDataFormat

POI Excel导出样式设置

HSSFSheet sheet = workbook.createSheet("sheetName"); //创建sheetsheet.setVerticallyCenter(true); //下面样式可作为导出左右分栏的表格模板sheet.setColumnWidth((short) 0, (short) 2600);// 设置列宽sheet.setColumnWidth((short) 1, (short) 2400);sheet.setColumnWidth((short) 2,

POI 中Cell的backgroundcolor和foregroundcolor

刚开始以为要获得cell的背景色是使用  getFillBackgroundColor()这个函数(这里返回的是调色板的索引,要获得RGB需要先获得系统的Pallete,然后在获得 RGB).结果出来的索引都是一样的,搜索了好一会,发现都没有自己要的答案,想想自己估计又犯了什么低级错误了,这个问题应该不是什么问题.果然在 POI的文档里面,这个问题就已经陈述出来了: public short getFillBackgroundColor() Get the background fill col

[How to]使用自定义cell进行tableview的创建,适用于cell样式不发生变化的情况。

1.简介 在tableview中又默认的cell格式,其中组织如下: <截取自官网文档> 最终的在页面上默认的cell也只能像上述那样的显示效果,如果这种要是无法满足我们的界面要求,那么我们可以自定义cell来进行创建. 2.实现 目标:我们需要制作如下一个table,它的cell高度宽度和排版都是一样的,所以非常适合使用xib来定制cell. 1. 初始化工程后我们将table的数据存放在plist中: 2.在controller中我们以懒加载的方式将plist数据加载进来 详细方法可参考[

eclipse格式化代码样式

1.Window->Preferences //Java 格式化 2.Java->Code Style->Formatter->New->Edit->Line Wrapping 3.Maximum Line width = 180 4.Set line width for preview window = 180 //JavaScript 格式化 5.JavaScript->Code Style->Formatter->New->Edit->

json格式化显示样式js代码分享

最近开发中需要在页面展示json.特整理了下代码,送给大家,希望能帮到有同样需求的朋友们. 代码: <html> <script src="http://cdn.bootcss.com/jquery/3.0.0-rc1/jquery.min.js"></script> <body> <span class="result"></span> <script> //json格式化方法 参

Vscode格式化的样式设置

 一.文件 Settings.json 二.路径 设置--->用户(常用设置)[文本编辑器]上面--->在setting.json中编辑 三.代码 1 { 2 "files.eol": "\n", 3 "typescript.preferences.quoteStyle": "single", 4 "javascript.preferences.quoteStyle": "single