POI如何自定义单元格背景颜色
提出问题
POI如何自定义单元格背景颜色???
解决问题
例一:具体的看注释
import org.apache.poi.hssf.usermodel.*; import org.apache.poi.hssf.util.HSSFColor;
import java.io.FileOutputStream;
/** * Created by Ay on 2016/4/29. */ public class PoiBackgroundColorTest {
public static void main(String[] args) throws Exception{ //创建一份 HSSFWorkbook excel = new HSSFWorkbook(); //创建第一个sheet HSSFSheet sheet = excel.createSheet("我的POI之旅"); //创建第一行 HSSFRow row = sheet.createRow((short) 0); //创建第一个单元格 HSSFCell cell = row.createCell((short) 0); //设置单元格的值 cell.setCellValue("Ay"); //生成单元格样式 HSSFCellStyle style = excel.createCellStyle(); //设置背景颜色 style.setFillForegroundColor(HSSFColor.LIME.index); //solid 填充 foreground 前景色 style.setFillPattern(HSSFCellStyle.SOLID_FOREGROUND); cell.setCellStyle(style); //通过流写到硬盘 FileOutputStream out = new FileOutputStream("D:/old_color.xls"); excel.write(out); out.close();
//====== 这里是重点,马上要自定义单元格的样式了 ============= cell.setCellValue("Al"); //拿到palette颜色板 HSSFPalette palette = excel.getCustomPalette(); //这个是重点,具体的就是把之前的颜色 HSSFColor.LIME.index //替换为 RGB(51,204,204) 宝石蓝这种颜色 //你可以改为 RGB(0,255,127) palette.setColorAtIndex(HSSFColor.LIME.index, (byte) 0, (byte) 255, (byte) 127); //====== 这里是重点,马上要自定义单元格的样式了 ============= out = new FileOutputStream("D:/new_color.xls"); excel.write(out); out.close(); } } |
D:/old_color.xls 结果
D:/new_color.xls 结果