文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

POI导出之Excel如何实现单元格的背景色填充

2023-07-05 10:00

关注

本篇内容介绍了“POI导出之Excel如何实现单元格的背景色填充”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

POI导出Excel设置单元格背景色

使用poi提供的背景色

//1.获取Excel工作簿对象HSSFWorkbook wb = new HSSFWorkbook();//2.获取sheet对象HSSFSheet sheet = wb.createSheet("sheet名");//2.创建单元格样式对象HSSFCellStyle cellStyle = wb.createCellStyle();//3.添加常用样式cellStyle.setWrapText(true);//设置自动换行cellStyle.setAlignment(HSSFCellStyle.ALIGN_CENTER);//水平居中显示cellStyle.setVerticalAlignment(HSSFCellStyle.VERTICAL_CENTER);//垂直居中cellStyle.setBorderBottom(HSSFCellStyle.BORDER_THIN);//下边框cellStyle.setBorderLeft(HSSFCellStyle.BORDER_THIN);//左边框cellStyle.setBorderTop(HSSFCellStyle.BORDER_THIN);//上边框cellStyle.setBorderRight(HSSFCellStyle.BORDER_THIN);//右边框//4.设置单元格背景色cellStyle.setFillPattern(HSSFCellStyle.SOLID_FOREGROUND);//填充单元格cellStyle.setFillForegroundColor(HSSFColor.RED.index);//设置单元格背景色//5.创建单元格并为单元格添加样式对象HSSFRow row = sheet.createRow(0);//这里就默认创建第一行HSSFCell cell = row.createCell(0);//默认创建第一个单元格cell.setCellStyle(cellStyle); //设置单元格样式cell.setCellType(HSSFCell.CELL_TYPE_STRING);//设置单元格内容的类型cell.setCellValue("Hello World!");//设置单元格内容

使用自定义的背景色

使用自定义的背景色,需要额外的添加一些操作。

这里以16进制的颜色为例,演示如何从16进制的颜色一步步设为单元格的背景色。

自定义颜色方法

下述方法的作用简单来说就是:根据传入的HSSFPalette 画板对象和color16进制的颜色字符串,先转成RGB码,然后使用HSSFPalette画板对象和index下标重新设置对应下标的颜色,并对HSSFCellStyle单元格样式进行颜色的设置。

强调说明:

(1)在进行颜色重新生成的时候,即如下代码。需要注意index下标的范围是在[8,64],设置成其他数字的下标,无效!

palette.setColorAtIndex((short)(index), (byte) r, (byte) g, (byte) b);

(2)根据下标和RGB码重新设置完颜色后,后续需要使用的话只需要根据下标设置单元格颜色即可。

hssfCellStyle.setFillForegroundColor((short)(index));
public static  void setCellColor(HSSFPalette palette,HSSFCellStyle hssfCellStyle,String color,int index){//转为RGB码int r = Integer.parseInt((color.substring(0,2)),16);   //转为16进制int g = Integer.parseInt((color.substring(2,4)),16);int b = Integer.parseInt((color.substring(4,6)),16);//这里index是索引palette.setColorAtIndex((short)(index), (byte) r, (byte) g, (byte) b);hssfCellStyle.setFillPattern(HSSFCellStyle.SOLID_FOREGROUND); hssfCellStyle.setFillForegroundColor((short)(index));}

POI设置Excel单元格背景色(setFillForegroundColor与setFillPattern使用)

使用Java开发信息系统项目,项目中往往会涉及到报表管理部分,而Excel表格首当其冲称为最合适的选择,但是对单元格操作时对于设置单元格的背景颜色却很少提及,本文旨在方便单元格背景颜色设计。

操作:

至于冗长的创建表格表格设置的代码相信大家都已经了解。直接进行单元格背景颜色设计。

// 创建一个 workbook 对象 Workbook workbook = new XSSFWorkbook();        // 创建一个 sheet        Sheet sheet = workbook.createSheet();        //创建一行        Row row = sheet.createRow((short) 1);        ellStyle style = workbook.createCellStyle();        //关键点 IndexedColors.AQUA.getIndex() 对应颜色        style.setFillForegroundColor(***IndexedColors.AQUA.getIndex()***);        style.setFillPattern(CellStyle.SOLID_FOREGROUND);        Cell cell = row.createCell((short) 1);        cell.setCellValue("X1");        cell.setCellStyle(style);

颜色与代码参考:

POI导出之Excel如何实现单元格的背景色填充

上面的单元格颜色对应下面的英语颜色表示,从X1-X49 按顺序对应;

将下面对应的code填入上述代码加粗斜体位置即可。

IndexedColors.AQUA.getIndex()IndexedColors.AUTOMATIC.getIndex()IndexedColors.BLUE.getIndex()IndexedColors.BLUE_GREY.getIndex()IndexedColors.BRIGHT_GREEN.getIndex()IndexedColors.BROWN.getIndex()IndexedColors.CORAL.getIndex()IndexedColors.CORNFLOWER_BLUE.getIndex()IndexedColors.DARK_BLUE.getIndex()IndexedColors.DARK_GREEN.getIndex()IndexedColors.DARK_RED.getIndex()IndexedColors.DARK_TEAL.getIndex()IndexedColors.DARK_YELLOW.getIndex()IndexedColors.GOLD.getIndex()IndexedColors.GREEN.getIndex()IndexedColors.GREY_25_PERCENT.getIndex()IndexedColors.GREY_40_PERCENT.getIndex()IndexedColors.GREY_50_PERCENT.getIndex()IndexedColors.GREY_80_PERCENT.getIndex()IndexedColors.INDIGO.getIndex()IndexedColors.LAVENDER.getIndex()IndexedColors.LEMON_CHIFFON.getIndex()IndexedColors.LIGHT_BLUE.getIndex()IndexedColors.LEMON_CHIFFON.getIndex()IndexedColors.LIGHT_BLUE.getIndex()IndexedColors.LIGHT_CORNFLOWER_BLUE.getIndex()IndexedColors.LIGHT_GREEN.getIndex()IndexedColors.LIGHT_ORANGE.getIndex()IndexedColors.LIGHT_TURQUOISE.getIndex()IndexedColors.LIGHT_YELLOW.getIndex()IndexedColors.LIME.getIndex()IndexedColors.MAROON.getIndex()IndexedColors.OLIVE_GREEN.getIndex()IndexedColors.ORANGE.getIndex()IndexedColors.ORCHID.getIndex()IndexedColors.PALE_BLUE.getIndex()IndexedColors.PINK.getIndex()IndexedColors.PLUM.getIndex()IndexedColors.RED.getIndex()IndexedColors.ROSE.getIndex()IndexedColors.ROYAL_BLUE.getIndex()IndexedColors.SEA_GREEN.getIndex()IndexedColors.SKY_BLUE.getIndex()IndexedColors.TAN.getIndex()IndexedColors.TEAL.getIndex()IndexedColors.TURQUOISE.getIndex()IndexedColors.VIOLET.getIndex()IndexedColors.WHITE.getIndex()IndexedColors.YELLOW.getIndex()

“POI导出之Excel如何实现单元格的背景色填充”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注编程网网站,小编将为大家输出更多高质量的实用文章!

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     807人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     351人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     314人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     433人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     221人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯