精华内容
下载资源
问答
  • poi实现导出excel,并且设置背景颜色

    千次阅读 2019-11-14 14:07:14
    先准备poi需要的坐标: <dependency> <groupId>org.apache.poi</groupId> <artifactId>poi</artifactId> <version>3.6</version...

    先准备poi需要的坐标:

    			<dependency>
                    <groupId>org.apache.poi</groupId>
                    <artifactId>poi</artifactId>
                    <version>3.13</version>
                </dependency>
                <dependency>
                    <groupId>org.apache.poi</groupId>
                    <artifactId>poi-ooxml</artifactId>
                    <version>3.13</version>
                </dependency>
    

    以下是核心代码:(每一行注释都很清晰哦~)

    @Controller
    @RequestMapping(value = "/report")
    public class ReportController {
    
        /**
         * 导出excel报表
         */
        @GetMapping(value = "/excel")
        public void excel( HttpServletResponse response) throws Exception {
            List<TestDataVo> list = datalist();
            HSSFWorkbook workbook = null ;
            BufferedOutputStream bufferedOutPut = null;
            try {
                workbook = new HSSFWorkbook();
                // 创建页
                HSSFSheet sheet = workbook.createSheet("Sheet1");
                //设置列宽
                sheet.setColumnWidth(0, 256*35);
                sheet.setColumnWidth(1, 256*35);
                sheet.setColumnWidth(2, 256*35);
                sheet.setColumnWidth(3, 256*35);
                sheet.setColumnWidth(4, 256*35);
    
                // 创建行
                HSSFRow firstrow = sheet.createRow(0);
                // 创建列
                HSSFCell cell0 = firstrow.createCell(0);
                cell0.setCellStyle(getColumnTopStyle(workbook));
                cell0.setCellValue("时间");
                // 创建列
                HSSFCell cell1 = firstrow.createCell(1);
                cell1.setCellStyle(getColumnTopStyle(workbook));
                cell1.setCellValue("姓名");
                // 创建列
                HSSFCell cell2 = firstrow.createCell(2);
                cell2.setCellStyle(getColumnTopStyle(workbook));
                cell2.setCellValue("单号");
                // 创建列
                HSSFCell cell3 = firstrow.createCell(3);
                cell3.setCellStyle(getColumnTopStyle(workbook));
                cell3.setCellValue("地址");
                // 创建列
                HSSFCell cell4 = firstrow.createCell(4);
                cell4.setCellStyle(getColumnTopStyle(workbook));
                cell4.setCellValue("用途");
    
                for (TestDataVo testDataVo : list) {
                    HSSFRow row = sheet.createRow(sheet.getLastRowNum() + 1);
                    //设置单元格的值,并且设置样式
                    HSSFCell cell00 = row.createCell(0);
                    cell00.setCellStyle(getStyle(workbook));
                    cell00.setCellValue(testDataVo.getDate());
                    //设置单元格的值,并且设置样式
                    HSSFCell cell01 = row.createCell(1);
                    cell01.setCellStyle(getStyle(workbook));
                    cell01.setCellValue(testDataVo.getName());
                    //设置单元格的值,并且设置样式
                    HSSFCell cell02 = row.createCell(2);
                    cell02.setCellStyle(getStyle(workbook));
                    cell02.setCellValue(testDataVo.getNumbers());
                    //设置单元格的值,并且设置样式
                    HSSFCell cell03 = row.createCell(3);
                    cell03.setCellStyle(getStyle(workbook));
                    cell03.setCellValue(testDataVo.getAddress());
                    //设置单元格的值,并且设置样式
                    HSSFCell cell04 = row.createCell(4);
                    cell04.setCellStyle(getStyle(workbook));
                    cell04.setCellValue(testDataVo.getPurpose());
                }
    
                String filename = "导出数据.xls";
                response.setHeader("Content-Disposition",
                        "attachment;filename*=UTF-8''" + URLEncoder.encode(filename, "UTF-8"));
                OutputStream outputStream = response.getOutputStream();
                getColumnTopStyle(workbook);
                bufferedOutPut = new BufferedOutputStream(outputStream);
                workbook.write(bufferedOutPut);
                bufferedOutPut.flush();
            } finally {
                if (bufferedOutPut != null)
                    bufferedOutPut.close();
                if(workbook != null)
                    workbook.close();
            }
        }
    
    
    

    下面是给excel设置表格+背景颜色

     /*
         * 列数据信息单元格样式
         */
        public HSSFCellStyle getStyle(HSSFWorkbook workbook) {
            // 设置字体
            HSSFFont font = workbook.createFont();
            //设置字体大小
            font.setFontHeightInPoints((short)12);
            //字体加粗
    //        font.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD);
            //设置字体名字
            font.setFontName("宋体");
            //设置样式;
            HSSFCellStyle style = workbook.createCellStyle();
            //设置背景颜色;
            style.setFillForegroundColor(HSSFColor.LEMON_CHIFFON.index);
            //solid 填充  foreground  前景色
            style.setFillPattern(HSSFCellStyle.SOLID_FOREGROUND);
            //设置底边框;
            style.setBorderBottom(HSSFCellStyle.BORDER_THIN);
            //设置底边框颜色;
            style.setBottomBorderColor(HSSFColor.BLACK.index);
            //设置左边框;
            style.setBorderLeft(HSSFCellStyle.BORDER_THIN);
            //设置左边框颜色;
            style.setLeftBorderColor(HSSFColor.BLACK.index);
            //设置右边框;
            style.setBorderRight(HSSFCellStyle.BORDER_THIN);
            //设置右边框颜色;
            style.setRightBorderColor(HSSFColor.BLACK.index);
            //设置顶边框;
            style.setBorderTop(HSSFCellStyle.BORDER_THIN);
            //设置顶边框颜色;
            style.setTopBorderColor(HSSFColor.BLACK.index);
            //在样式用应用设置的字体;
            style.setFont(font);
            //设置自动换行;
            style.setWrapText(false);
            //设置水平对齐的样式为居中对齐;
            style.setAlignment(HSSFCellStyle.ALIGN_CENTER);
            //设置垂直对齐的样式为居中对齐;
            style.setVerticalAlignment(HSSFCellStyle.VERTICAL_CENTER);
    
            return style;
    
        }
    
        /*
         * 列头单元格样式
         */
        public HSSFCellStyle getColumnTopStyle(HSSFWorkbook workbook) {
    
            // 设置字体
            HSSFFont font = workbook.createFont();
            //设置字体大小
            font.setFontHeightInPoints((short)14);
            //字体加粗
            font.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD);
            //设置字体名字
            font.setFontName("黑体");
            //设置样式;
            HSSFCellStyle style = workbook.createCellStyle();
            //设置背景颜色;
            style.setFillForegroundColor(HSSFColor.LIGHT_ORANGE.index);
            //solid 填充  foreground  前景色
            style.setFillPattern(HSSFCellStyle.SOLID_FOREGROUND);
            //设置底边框;
            style.setBorderBottom(HSSFCellStyle.BORDER_THIN);
            //设置底边框颜色;
            style.setBottomBorderColor(HSSFColor.BLACK.index);
            //设置左边框;
            style.setBorderLeft(HSSFCellStyle.BORDER_THIN);
            //设置左边框颜色;
            style.setLeftBorderColor(HSSFColor.BLACK.index);
            //设置右边框;
            style.setBorderRight(HSSFCellStyle.BORDER_THIN);
            //设置右边框颜色;
            style.setRightBorderColor(HSSFColor.BLACK.index);
            //设置顶边框;
            style.setBorderTop(HSSFCellStyle.BORDER_THIN);
            //设置顶边框颜色;
            style.setTopBorderColor(HSSFColor.BLACK.index);
            //在样式用应用设置的字体;
            style.setFont(font);
            //设置自动换行;
            style.setWrapText(false);
            //设置水平对齐的样式为居中对齐;
            style.setAlignment(HSSFCellStyle.ALIGN_CENTER);
            //设置垂直对齐的样式为居中对齐;
            style.setVerticalAlignment(HSSFCellStyle.VERTICAL_CENTER);
    
            return style;
    
        }
    }
    
    

    以下就是效果图,大家可以根据自己喜欢的颜色进行调整。
    在这里插入图片描述

    在这里插入图片描述
    如果大家不知道有哪些颜色
    请参考:https://blog.csdn.net/qq_41234832/article/details/103061884

    如果此文章对您有帮助,拜托留个赞再走哦~

    展开全文
  • 我正在尝试将单元格从一行复制到下一个单元格。复制评论和cellvalues工作正常。... 我试过:使用Apache POI设置Excel单元格的RGB背景颜色style2.setFillBackgroundColor(cell_master_alt.getCellStyle().getFil...

    我正在尝试将单元格从一行复制到下一个单元格。复制评论和cellvalues工作正常。现在,如果我在Excel中设置了背景颜色并想将其复制到新单元格中,则不起作用。复制后只有没有颜色或背景是黑色的。 我试过:使用Apache POI设置Excel单元格的RGB背景颜色

    style2.setFillBackgroundColor(cell_master_alt.getCellStyle().getFillBackgroundColor());

    style2.setFillForegroundColor(cell_master_alt.getCellStyle().getFillForegroundColor());

    style2.setFillPattern(CellStyle.SOLID_FOREGROUND); or

    style2.setFillPattern(cell_master_alt.getCellStyle().getFillPattern());

    cell_master_neu.setCellStyle(style2);

    没有任何进展的几个小时后,我看着我想要复制的单元格的foreground-和背景色。在那里我找到了RGB值。现在我想用这些值创建一个新的Cellstyle,但那不起作用。 首先,我试试这个:

    style_new.setFillForegroundColor(new XSSFColor(new java.awt.Color(128,128,128)));

    ,但有一个错误信息:

    The method setFillForegroundColor(short) in the type CellStyle is not applicable for the arguments (XSSFColor)

    有什么不好呢?

    感谢

    2016-02-15

    Nikita.M

    展开全文
  • 技术交流群:233513714HSSFCellStyle setBorder1 = workbook.createCellStyle();HSSFFont font1 = workbook.createFont();font1.setFontName("Arial");font1....//设置字体大小setBorder1.setFon...

    技术交流群:233513714

    HSSFCellStyle setBorder1 = workbook.createCellStyle();

    HSSFFont font1 = workbook.createFont();

    font1.setFontName("Arial");

    font1.setFontHeightInPoints((short) 14);//设置字体大小

    setBorder1.setFont(font1);//选择需要用到的字体格式

    setBorder1.setAlignment(HSSFCellStyle.ALIGN_CENTER); // 居中

    setBorder1.setFillPattern(HSSFCellStyle.SOLID_FOREGROUND);

    setBorder1.setFillForegroundColor(IndexedColors.YELLOW.getIndex());  //设置前景色

    //setBorder1.setFillForegroundColor(HSSFColor.RED.index);  //设置背景色

    HSSFSheet sheet = workbook.createSheet("list");

    getCell(sheet, i, 0).setCellValue("日期");

    getCell(sheet, i, 0).setCellStyle(setBorder1);//设置样式

    这里需要特别注意的是在设置背景色和前景色的时候一定要加上setBorder1.setFillPattern(HSSFCellStyle.SOLID_FOREGROUND);这行代码,否则设置颜色不起作用

    展开全文
  • POI 设置单元格背景颜色 一、冲~~~ 1.代码实现 注: 本人用的是目前最新的依赖 4.1.2 代码如下(示例): HSSFWorkbook workbook = new HSSFWorkbook(); HSSFCellStyle style = workbook.createCellStyle(); //...


    前言

    POI 设置单元格背景颜色


    一、冲~~~

    1.代码实现

    注: 本人用的是目前最新的依赖  4.1.2 
    

    代码如下(示例):

     HSSFWorkbook workbook = new HSSFWorkbook();
     HSSFCellStyle style = workbook.createCellStyle();
     //设置单元格颜色(颜色对应枚举会放在下面)
     style.setFillForegroundColor(IndexedColors.CORNFLOWER_BLUE.getIndex());
     //全部填充 (填充枚举对应的样式也会放在下面)
     style.setFillPattern(FillPatternType.SOLID_FOREGROUND);
    //当然 style可以设置多个 填充时选取自己需要的就行
    //下面简单举例一下(单个单元格)其他的都一样
    HSSFSheet sheet = workbook.createSheet("excel");
    HSSFRow row = sheet.createRow(0);
    HSSFCell cell = row.createCell(0);
    cell.setCellValue("哈哈"); //单元格内容
    cell.setCellStyle(style);//填充
    

    2.颜色对应

    下面顺序对应

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

    3.填充对应

    填充的样式

      NoFill = 0,
      SolidForeground = 1,
      FineDots = 2,
      AltBars = 3,
      SparseDots = 4,
      ThickHorizontalBands = 5,
      ThickVerticalBands = 6,
      ThickBackwardDiagonals = 7,
      ThickForwardDiagonals = 8,
      BigSpots = 9,
      Bricks = 10,
      ThinHorizontalBands = 11,
      ThinVerticalBands = 12,
      ThinBackwardDiagonals = 13,
      ThinForwardDiagonals = 14,
      Squares = 15,
      Diamonds = 16,
      LessDots = 17,
      LeastDots = 18
    

    总结

    遇到的问题:poi依赖版本的问题 版本的老一点的HSSFCellStyle 就可以直接使用颜色

    展开全文
  • 上面的单元格颜色对应下面的英语颜色表示,从X1 - X49 按顺序对应; 将下面对应的code填入上述代码加粗斜体位置即可。 1. IndexedColors . AQUA . getIndex ( ) 2. IndexedColors . AUTOMATIC . getIndex ( ) ...
  • POI设置Cell背景色编码与实际颜色对照表
  • POI导出EXCEL自定义背景颜色

    千次阅读 2018-06-29 16:45:24
    背景:课程导出成excel背景颜色设置为课程自定义颜色。效果图:源码:public class Test { public static void main(String[] args) throws Exception { //生成excel generateExcel(); } private static ...
  • 根据业务需求,导出excel需要隔行变色,使用pom如下 <dependency> <groupId>org.apache.poi</groupId> <artifactId>poi</artifactId> <version>3.15...
  • Java Poi 导出excel(支持各种设置字体、颜色、垂直居中)
  • java poi设置Excel单元格颜色

    万次阅读 2017-12-28 14:08:19
    CellStyle cellStyle = wb.createCellStyle(); cellStyle.setFillPattern(HSSFCellStyle.SOLID_FOREGROUND); //填充单元格 cellStyle.setFillForegroundColor(HSSFColor.RED.index); //填红色 ...
  • This example shows you Excel cell fills and colors using Apache POI.In our example i have used all the possible colors and set it as Fills background colors of cells.Below is the example code.package ...
  • POI写入Excel背景

    2021-04-17 10:19:06
    package com.ipan.poi.excel;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导出excel设置颜色(JAVA)

    万次阅读 多人点赞 2019-02-02 10:03:46
    参考文档:https://blog.csdn.net/z1074907546/article/details/50544178 java使用poi导出excel设置颜色 POI 设置单元格背景色 cellStyle.setFillPattern(HSSFCellStyle.SOLID_FOREGROUND);//设置前景填充样式 ...
  • 背景介绍:使用Java开发信息系统项目,项目中往往会涉及到报表管理部分,而Excel表格首当其冲称为最合适的选择,但是对单元格操作时对于设置单元格的背景颜色却很少提及,本文旨在方便单元格背景颜色设计。...
  • java操作excel,一般使用poi开源框架来实现,可以下载相应poi包导入到Eclipse项目中,以下是经常用到的poi操作excel代码片段:先获取工作薄对象:HSSFWorkbook wb = new HSSFWorkbook();HSSFSheet sheet = wb....
  • /*设置背景颜色*/ cellBoldStyle.setFillPattern(FillPatternType.SOLID_FOREGROUND); HSSFPalette palette = wb.getCustomPalette(); cellBoldStyle.setFillForegroundColor(IndexedColors.LIME.getIndex()); ...
  • POI导出Excel设置单元格背景

    千次阅读 2019-08-25 15:16:46
    POI导出Excel设置单元格背景色 导出Excel的时候,没有设置背景色,用2003版本的Excel工具打开会出现文档单元格背景自动填充黑色的情况,没有找到好的解决方法,就主动给他填充一种颜色,问题就算解决了。在WPS中...
  • 最近项目中用到了POI导出功能。以下技术供大家学习 完整代码如下: CellStyle style = wb.createCellStyle(); style.setBorderBottom(CellStyle.BORDER_THIN); style.setBorderLeft(CellStyle.BORDER_THIN); ...
  • poi设置Excel单元格边框 和 背景色,java设置Excel 单元格边框 和 背景色 import org.apache.poi.hssf.usermodel.HSSFWorkbook; import org.apache.poi.hssf.util.HSSFColor; import org.apache.poi.ss.usermodel...
  • This example shows you Excel cell fills and colors using Apache POI. In our example i have used all the possible colors and set it as Fills background colors of cells. Below is the example code.
  • } 根据需求设置单元格背景色为灰色,以上代码设置结果为黑色,原因是cellStyleLeft.setFillBackgroundColor(IndexedColors.GREY_25_PERCENT.getIndex()); // 灰色 这段代码有问题,改成下面就行,注意页面颜色填充...
  • XLS 设置单元格填充颜色  Workbook workBook = new XSSFWorkbook(); Sheet sheet = workBook.createSheet("商品信息表"); Row row1 = sheet.createRow(0); CellStyle headStyle = workBook....
  • 废话不多说,直接来代码!!! 其中标红的才是重点!!! 代码中有时可以不用创建新文件, 如果报错的话可以通过创建新文件来进行操作(懒,没去找报错原因),不过原文件也会被修改。...org.apache.poi.ss.userm...
  • import java.io.FileOutputStream; import java.io.IOException; ...import org.apache.poi.ss.usermodel.Cell; import org.apache.poi.ss.usermodel.CellStyle; ...
  • 背景:HSSF:HSSF格式的excel,即比较老旧的.xls后缀的excel,如97-2003版的excel,支持的颜色略少。XSSF:而XSSF(xlsx后缀)的excel的话(2007以及更新的版本),设置颜色就方便多了本文用的是HSSF核心代码:CellStyle...
  • 话不多说,直接上代码。都是亲测的项目代码,可以直接复制修改使用。(内有详细注解)主要留做自用,有不周到的地方请...但是经测试SXSSFWorkbook不适用自定义背景颜色方法。 public String downloadPublicOpinS...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 2,931
精华内容 1,172
关键字:

poi设置excel背景颜色