java excel 字体颜色_有没用过java poi的啊,excel要怎么改单元格内部分字的颜色

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼

package TestTwoColorOnSingleCell;

import java.io.File;

import java.io.FileNotFoundException;

import java.io.FileOutputStream;

import java.io.IOException;

import org.apache.poi.hssf.usermodel.HSSFCell;

import org.apache.poi.hssf.usermodel.HSSFCellStyle;

import org.apache.poi.hssf.usermodel.HSSFFont;

import org.apache.poi.hssf.usermodel.HSSFRichTextString;

import org.apache.poi.hssf.usermodel.HSSFRow;

import org.apache.poi.hssf.usermodel.HSSFSheet;

import org.apache.poi.hssf.usermodel.HSSFWorkbook;

import org.apache.poi.hssf.util.HSSFColor;

import org.apache.poi.ss.usermodel.CellStyle;

public class Test {

public static void main(String[] args) {

// 创建工作簿

HSSFWorkbook wb = new HSSFWorkbook();

// 创建sheet

HSSFSheet Sheet1 = wb.createSheet("测试在同一个单元格里设置不同的颜色");

// 设置列宽

Sheet1.setColumnWidth(0, 20 * 256);

// 创建行(第一行)

HSSFRow row = Sheet1.createRow(0);

// 创建第一列

HSSFCell cell = row.createCell(0);

// 创建一个字体

HSSFFont font1 = (HSSFFont) wb.createFont();

font1.setFontName("Microsoft YaHei");// 名字

font1.setFontHeightInPoints((short) 12); // 行高

font1.setBoldweight((short) 12);// 字体粗度

font1.setColor(HSSFColor.BLUE.index); // 字体颜色

// 创建另一个字体

HSSFFont font2 = (HSSFFont) wb.createFont();

font2.setFontName("Microsoft YaHei");// 名字

font2.setFontHeightInPoints((short) 12);

font2.setBoldweight((short) 12);

font2.setColor(HSSFColor.RED.index);

// 创建一个RichTextString字符串,我做了个带括号的实例为了你方便,"Hello,(World!)" 这货length 14

HSSFRichTextString hrt = (HSSFRichTextString) wb.getCreationHelper()

.createRichTextString("Hello,(World!)");

// 给7~13设置font2,也就是红色,"world" 部分

hrt.applyFont(7, 13, font2);

// 给最后的括号")"设置蓝色

hrt.applyFont(13, 14, font1);

// 这里创建一个style,设置font1,也就是蓝色

CellStyle style = wb.createCellStyle();

style.setFont(font1);

cell.setCellStyle(style);

cell.setCellType(cell.CELL_TYPE_STRING);// 设置单元格类型

cell.setCellValue(hrt);// 赋值

// 写入文件

writeToFile(wb);

}

public static void writeToFile(HSSFWorkbook wb) {

File file = new File("D://SingleCellButDifferentColor.xls");

FileOutputStream os;

try {

os = new FileOutputStream(file);

wb.write(os);

} catch (FileNotFoundException e) {

// TODO Auto-generated catch block

e.printStackTrace();

} catch (IOException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值