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();
}
}
}
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();
}
}
}