正如Html需要CSS一样,我们的POI生成的Excel同样需要样式才能更完美的表现我们的数据。下面还是从简单的例子出发,学习和了解POI的样式设计。

  一、我的位置。

1 package com.myjava.poi;
2
3 import java.io.FileOutputStream;
4 import java.util.Date;
5
6 import org.apache.poi.hssf.usermodel.HSSFCell;
7 import org.apache.poi.hssf.usermodel.HSSFCellStyle;
8 import org.apache.poi.hssf.usermodel.HSSFRichTextString;
9 import org.apache.poi.hssf.usermodel.HSSFWorkbook;
10 import org.apache.poi.ss.usermodel.Cell;
11 import org.apache.poi.ss.usermodel.CellStyle;
12 import org.apache.poi.ss.usermodel.Row;
13 import org.apache.poi.ss.usermodel.Sheet;
14 import org.apache.poi.ss.usermodel.Workbook;
15
16 public class ExcelStyle {
17
18 public static void main(String[] args) throws Exception{
19 Workbook wb=new HSSFWorkbook(); // 定义一个新的工作簿
20 Sheet sheet=wb.createSheet("第一个Sheet页"); // 创建第一个Sheet页
21 Row row=sheet.createRow(2); // 创建一个行
22 row.setHeightInPoints(30);
23
24 createCell(wb, row, (short)0, HSSFCellStyle.ALIGN_CENTER, HSSFCellStyle.VERTICAL_BOTTOM);
25 createCell(wb, row, (short)1, HSSFCellStyle.ALIGN_FILL, HSSFCellStyle.VERTICAL_CENTER);
26 createCell(wb, row, (short)2, HSSFCellStyle.ALIGN_LEFT, HSSFCellStyle.VERTICAL_TOP);
27 createCell(wb, row, (short)3, HSSFCellStyle.ALIGN_RIGHT, HSSFCellStyle.VERTICAL_TOP);
28
29 FileOutputStream fileOut=new FileOutputStream("D:\\工作簿.xls");
30 wb.write(fileOut);
31 fileOut.close();
32 }
33
34 /**
35 * 创建一个单元格并为其设定指定的对齐方式
36 * @param wb 工作簿
37 * @param row 行
38 * @param column 列
39 * @param halign 水平方向对其方式
40 * @param valign 垂直方向对其方式
41 */
42 private static void createCell(Workbook wb,Row row,short column,short halign,short valign){
43 Cell cell=row.createCell(column); // 创建单元格
44 cell.setCellValue(new HSSFRichTextString("我在这")); // 设置值
45 CellStyle cellStyle=wb.createCellStyle(); // 创建单元格样式
46 cellStyle.setAlignment(halign); // 设置单元格水平方向对其方式
47 cellStyle.setVerticalAlignment(valign); // 设置单元格垂直方向对其方式
48 cell.setCellStyle(cellStyle); // 设置单元格样式
    }
}

  效果显示:

  

  二、我的边框

 

 1 package com.myjava.poi;
2
3 import java.io.FileOutputStream;
4 import java.util.Calendar;
5 import java.util.Date;
6
7 import org.apache.poi.hssf.usermodel.HSSFWorkbook;
8 import org.apache.poi.ss.usermodel.Cell;
9 import org.apache.poi.ss.usermodel.CellStyle;
10 import org.apache.poi.ss.usermodel.CreationHelper;
11 import org.apache.poi.ss.usermodel.IndexedColors;
12 import org.apache.poi.ss.usermodel.Row;
13 import org.apache.poi.ss.usermodel.Sheet;
14 import org.apache.poi.ss.usermodel.Workbook;
15
16 public class Border {
17
18 public static void main(String[] args) throws Exception{
19 Workbook wb=new HSSFWorkbook(); // 定义一个新的工作簿
20 Sheet sheet=wb.createSheet("第一个Sheet页"); // 创建第一个Sheet页
21 Row row=sheet.createRow(1); // 创建一个行
22
23 Cell cell=row.createCell(1); // 创建一个单元格
24 cell.setCellValue(4);
25
26 CellStyle cellStyle=wb.createCellStyle();
27 cellStyle.setBorderBottom(CellStyle.BORDER_THIN); // 底部边框
28 cellStyle.setBottomBorderColor(IndexedColors.BLACK.getIndex()); // 底部边框颜色
29 cellStyle.setBorderLeft(CellStyle.BORDER_THIN); // 左边边框
30 cellStyle.setLeftBorderColor(IndexedColors.RED.getIndex()); // 左边边框颜色
31
32 cellStyle.setBorderRight(CellStyle.BORDER_THIN); // 右边边框
33 cellStyle.setRightBorderColor(IndexedColors.BLUE.getIndex()); // 右边边框颜色
34 cellStyle.setBorderTop(CellStyle.BORDER_MEDIUM_DASHED); // 上边边框
35 cellStyle.setTopBorderColor(IndexedColors.BLACK.getIndex()); // 上边边框颜色
36
37 cell.setCellStyle(cellStyle);
38 FileOutputStream fileOut=new FileOutputStream("D:\\Border.xls");
39 wb.write(fileOut);
40 fileOut.close();
41 }
42 }

  效果显示:

  

  三、我的背景

  

package com.myjava.poi;
2
3 import java.io.FileOutputStream;
4 import java.util.Calendar;
5 import java.util.Date;
6
7 import org.apache.poi.hssf.usermodel.HSSFWorkbook;
8 import org.apache.poi.ss.usermodel.Cell;
9 import org.apache.poi.ss.usermodel.CellStyle;
10 import org.apache.poi.ss.usermodel.CreationHelper;
11 import org.apache.poi.ss.usermodel.IndexedColors;
12 import org.apache.poi.ss.usermodel.Row;
13 import org.apache.poi.ss.usermodel.Sheet;
14 import org.apache.poi.ss.usermodel.Workbook;
15
16 public class Bg {
17
18 public static void main(String[] args) throws Exception{
19 Workbook wb=new HSSFWorkbook(); // 定义一个新的工作簿
20 Sheet sheet=wb.createSheet("第一个Sheet页"); // 创建第一个Sheet页
21 Row row=sheet.createRow(1); // 创建一个行
22
23 Cell cell=row.createCell(1);
24 cell.setCellValue("看不清我");
25 CellStyle cellStyle=wb.createCellStyle();
26 cellStyle.setFillBackgroundColor(IndexedColors.AQUA.getIndex()); // 背景色
27 cellStyle.setFillPattern(CellStyle.BIG_SPOTS);
28 cell.setCellStyle(cellStyle);
29
30
31 Cell cell2=row.createCell(2);
32 cell2.setCellValue("我的前景色与众不同");
33 CellStyle cellStyle2=wb.createCellStyle();
34 cellStyle2.setFillForegroundColor(IndexedColors.RED.getIndex()); // 前景色
35 cellStyle2.setFillPattern(CellStyle.SOLID_FOREGROUND);
36 cell2.setCellStyle(cellStyle2);
37
38 FileOutputStream fileOut=new FileOutputStream("D:\\bg.xls");
39 wb.write(fileOut);
40 fileOut.close();
41 }
42 }

  效果显示:

  

  四、合并单元格

  

package com.myjava.poi;
2
3 import java.io.FileOutputStream;
4 import java.util.Calendar;
5 import java.util.Date;
6
7 import org.apache.poi.hssf.usermodel.HSSFWorkbook;
8 import org.apache.poi.ss.usermodel.Cell;
9 import org.apache.poi.ss.usermodel.CellStyle;
10 import org.apache.poi.ss.usermodel.CreationHelper;
11 import org.apache.poi.ss.usermodel.IndexedColors;
12 import org.apache.poi.ss.usermodel.Row;
13 import org.apache.poi.ss.usermodel.Sheet;
14 import org.apache.poi.ss.usermodel.Workbook;
15 import org.apache.poi.ss.util.CellRangeAddress;
16
17 public class GetTogether {
18
19 public static void main(String[] args) throws Exception{
20 Workbook wb=new HSSFWorkbook(); // 定义一个新的工作簿
21 Sheet sheet=wb.createSheet("第一个Sheet页"); // 创建第一个Sheet页
22 Row row=sheet.createRow(1); // 创建一个行
23
24 Cell cell=row.createCell(1);
25 cell.setCellValue("我们被合并单元格啦!");
26
27 sheet.addMergedRegion(new CellRangeAddress(
28 1, // 起始行
29 2, // 结束行
30 1, // 其实列
31 2 // 结束列
32 ));
33
34
35 FileOutputStream fileOut=new FileOutputStream("D:\\Together.xls");
36 wb.write(fileOut);
37 fileOut.close();
38 }
39 }

  效果显示:

  

java POI Excel 单元格样式的更多相关文章

  1. 转:Java修改Excel单元格的数据及格式

    https://blog.csdn.net/aking21alinjuju/article/details/6001153?locationNum=2 继前两节的Java读取.写入Excel后,本期将 ...

  2. poi 升级至4.x 的问题总结(POI Excel 单元格内容类型判断并取值)

    POI Excel 单元格内容类型判断并取值 以前用 cell.getCachedFormulaResultType() 得到 type 升级到4后获取不到了 换为:cell.getCellType( ...

  3. java poi 合并单元格

    java poi 合并单元格 2017年03月29日 16:39:01 翠烟你懊恼 阅读数:26561   版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.n ...

  4. java poi 合并单元格后边框问题

    在项目中用poi合并单元格,但发现边框会有不显示的问题. 在网上搜集了答案,来记录一下. 解决方法: 将每个没用到的单元格都设空值. 例如: HSSFCell cell = row.createCel ...

  5. java POI excel 导出复合样式(一个单元格两个字体)

    前言:java poi 导出 excel 时,需要设置一个单元格有多个字体样式,有点类似于富文本. 想要达到的效果(一个单元格里): 我使用的 poi 版本是 <dependency> & ...

  6. POI HSSFCellStyle 设置 Excel 单元格样式

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

  7. Java 在Excel单元格中应用一种/多种字体样式

    在Excel表格中,设置单元格字体样式时,可以对单元格内的所有字符应用同一样式,即获取指定单元,应用样式即可:另外也可以对单元格内的不同字符内容应用不同字体样式,即获取单元格中的字符位置,应用样式:本 ...

  8. java poi 获取单元格值时间

    完整帮助类:JAVA poi 帮助类 /* * poi特殊日期格式:数字格式化成-yyyy年MM月dd日,格式 * */ private static ArrayList<String> ...

  9. JAVA poi设置单元格背景颜色

    import java.io.FileOutputStream; import java.io.IOException;   import org.apache.poi.ss.usermodel.Ce ...

随机推荐

  1. pwnable.kr-mistake-witeup

    阅读代码后思路: 实践: 1111111111 其异或值:0000000000 欧克,愉快的结束. 需要经常多看代码,对代码的书写习惯有了解,比如这一块17行一般人书写时都会习惯性加括号的.

  2. MATLAB中均值、方差、均方差的计算方法

    MATLAB中均值.方差.均方差的计算方法     1. 均值 数学定义: Matlab函数:mean >>X=[1,2,3] >>mean(X)=2 如果X是一个矩阵,则其均 ...

  3. python数据结构实现(栈和链栈)

    栈 class Stack: def __init__(self, limit: int 10): self.stack = [] self.limit = limit def __bool__(se ...

  4. Go-The process cannot access the file because it is being used by another process.

    where? Go程序在读取文件时候 why? 因为有其他进程也在读取和Go程序想要读取的文件,参数冲突 way? 关闭其他程序进程对该文件的读取操作

  5. RT Thread 通过ENV来配置SFUD,操作SPI Flash

    本实验基于正点原子stm32f4探索者板子 请移步我的RT Thread论坛帖子. https://www.rt-thread.org/qa/forum.php?mod=viewthread& ...

  6. nginx完美支持thinkphp3.2.2(需配置URL_MODEL=>1 pathinfo模式)

    来源:http://www.thinkphp.cn/topic/26657.html 第一步:配置SERVER块 server { listen 80; server_name www.domain. ...

  7. c 判断端口是否已被使用

    isPortOpen.c #include <stdio.h> #include <stdlib.h> #include <string.h> #include & ...

  8. regsvr32 bypass windows defender 新思路

    原文链接:blog 在对regsvr32的用法进行了解之后,对于Casey Smith的远程js脚本执行命令的思路很感兴趣. 命令语法如下: regsvr32 /s /n /u /i:http://1 ...

  9. CDH5部署三部曲之二:部署和设置

    欢迎访问我的GitHub https://github.com/zq2599/blog_demos 内容:所有原创文章分类汇总及配套源码,涉及Java.Docker.Kubernetes.DevOPS ...

  10. BOOST库 消息队列

    直接贴实验代码: /******* boost 消息队列 **********/ #if 1 #include <boost/thread/thread.hpp> #include < ...