Java操作poi导出Excel自定义字体颜色
功能介绍
Apache POI 是用Java编写的免费开源的跨平台的 Java API,Apache POI提供API给Java程式对Microsoft Office格式档案读和写的功能。POI为“Poor Obfuscation Implementation”的首字母缩写,意为“简洁版的模糊实现”。
POI操作Excel
第一步下载一个poi的jar包,根据当前Spring的版本选择一个适合的poi版本,此文使用的是poi3.0.1版本,闲话不多说上代码;
第一步创建一个导出的工具类
public class ExcelUtils {
/**
* 导出Excel
* @param sheetName sheet名称
* @param title 标题
* @param values 内容
* @param wb HSSFWorkbook对象
* @return
*/
public static HSSFWorkbook getHSSFWorkbook(String sheetName, String []title, String [][]values, HSSFWorkbook wb){
// 第一步,创建一个HSSFWorkbook,对应一个Excel文件
if(wb == null){
wb = new HSSFWorkbook();
}
// 第二步,在workbook中添加一个sheet,对应Excel文件中的sheet
HSSFSheet sheet = wb.createSheet(sheetName);
// 第三步,在sheet中添加表头第0行,注意老版本poi对Excel的行数列数有限制
HSSFRow row = sheet.createRow(0);
// 第四步,创建单元格,并设置值表头 设置表头居中
HSSFCellStyle style = wb.createCellStyle();
style.setAlignment(HSSFCellStyle.ALIGN_CENTER); // 创建一个居中格式
/**此段代码用于设置自定义样式代码详情看下方详解**/
/**此段代码用于设置自定义样式代码详情看下方详解**/
//声明列对象
HSSFCell cell;
//创建标题
for(int i=0;i<title.length;i++){
cell = row.createCell(i);
cell.setCellValue(title[i]);
cell.setCellStyle(style);
}
//创建内容
for(int i=0;i<values.length;i++){
row = sheet.createRow(i + 1);
for(int j=0;j<values[i].length;j++){
//将内容按顺序赋给对应的列对象
row.createCell(j).setCellValue(values[i][j]);
}
}
return wb;
}
}
本人引用的HSSFWorkbook对象也可以使用XSSFWorkbook对象具体看Excel使用的版本;
整体定义表格字体样式
整体设置:将一个表格中的所有内容设置为一种颜色:
如果需要将表头与内容设置成一个颜色的字体的话在上文代码中写入表头与写入内容循环中使用一个HSSFCell 与HSSFCellStyle 对象即可,如需要表头内容字体颜色不一样则需要单独声明HSSFCellStyle对象;
代码:
//声明一个字体对象
Font font = null;
//创建一个字体对象
font = workbook.createFont();
//给字体对象设置颜色属性
font.setColor(HSSFColor.RED.index);
//将字体对象放入XSSFCellStyle对象中
style.setFont(font);
//将样式放入Cell对象中
cell.setCellStyle(style);
/***最后按照上文代码将写入内容放入cell.setCellValue()中
* 如果需要将表头字体颜色与内容字体颜色分开则需要新创建一个XSSFCellStyle将Font对象放入其中
* 再将新的XSSFCellStyle对象放入cell.setCellStyle(style)中**
* */
以上是整体定义表格字体颜色代码
自定义表格字体样式
自定义设置:与整体设置不同自定义设置字体样式需要创建CreationHelper对象与RichTextString数据类型;
然后通过RichTextString str = helper.createRichTextString()这样的方式将要改变的字体样式的单个内容放入到该方法中
然后创建Font字体对象设置颜色样式将Font对象放入str.applyFont(font)方法中;
代码:
//创建CreationHelper对象
CreationHelper helper = workbook.getCreationHelper();
//创建内容
for(int i=0;i<values.length;i++){
XSSFCell cell1 = row.createCell(j);
//声明RichTextString类型;
RichTextString str =null;
//将需要设置颜色的内容放入RichTextString中
str=helper.createRichTextString(values[i][j]);
//声明字体样式
font.setColor(HSSFColor.RED.index);
//调用添加字体对象的方法将字体对象写入RichTextString中
str.applyFont(font);
//将RichTextString放入Cell对象中
cell1.setCellValue(str);
}
总结
以上是poi对于Excel字体样式自定义颜色的代码,对于poi还有很多功能日后会继续更新,如有错误请评论指出,如有雷同请多包涵;