首页 > 编程语言 >Java导出Excel带格式工具类

Java导出Excel带格式工具类

时间:2023-08-17 11:01:24浏览次数:43  
标签:Java String 创建 样式 导出 Excel param backColor workbook

Java导出Excel里面有具体内容,带有格式。可以创建工具类直接去使用

 /**
     * 通用模版下载
     * @param outputStream 以流的形式输出到浏览器
     * @param excelName 下载excel的文件名称
     * @param Waring 提示语言
     * @param titleS 标题列
     * @param contentS 内容列
     * @throws Exception 抛出异常
     */
    public static void excelCommonDown(OutputStream outputStream,String excelName,
        String Waring,String[] titleS,String[] contentS) throws Exception {
//      传入值必须都有
        if (excelName==null || Waring==null || titleS==null || contentS==null){
            throw new RuntimeException("请填完值");
        }

        // 创建工作簿和工作表
        Workbook workbook = new XSSFWorkbook();
        Sheet sheet = workbook.createSheet(excelName);

// 创建一个样式,设置文本颜色为红色
        CellStyle redStyle = workbook.createCellStyle();
        Font redFont = workbook.createFont();
        redFont.setColor(IndexedColors.RED.getIndex());
        redStyle.setFont(redFont);

// 创建一个样式,设置文本颜色为绿色
        CellStyle whileStyle = workbook.createCellStyle();
        Font whiteFont = workbook.createFont();
        whiteFont.setColor(IndexedColors.WHITE.getIndex());
        whileStyle.setFont(whiteFont);

//      创建样式,设置背景颜色
        CellStyle backColor = workbook.createCellStyle();
        backColor.setFillForegroundColor(IndexedColors.GREY_40_PERCENT.getIndex());//设置背景色
        backColor.setFillPattern(FillPatternType.SOLID_FOREGROUND);//必须设置 否则无效
        //增加水平居中样式
        backColor.setAlignment(HorizontalAlignment.CENTER);
        //增加垂直居中样式
        backColor.setVerticalAlignment(org.apache.poi.ss.usermodel.VerticalAlignment.CENTER);

        CellStyle cellPosition = workbook.createCellStyle();
        //增加水平居中样式
        cellPosition.setAlignment(HorizontalAlignment.CENTER);
        //增加垂直居中样式
        cellPosition.setVerticalAlignment(org.apache.poi.ss.usermodel.VerticalAlignment.CENTER);

// 创建一个单元格,并在其中设置两段文本,分别使用不同的样式
        Row row = sheet.createRow(0);
        Cell cell = row.createCell(0);
//        String content = "温馨提示:1、所有字段不可为空;2、学校名称:学校名称需要和导入学校保持一致(如不一致联系您的市场负责人进行修改)3、教师电话不可重复 4、批量导入时请删除本行再进行导入5、班级用英文逗号隔开 ";
        cell.setCellValue(Waring);
//      cell.getRichStringCellValue().applyFont(0,content.length()-1,redFont); //设置红色
//      第二行第一个,行只用设置一次,然后在每一列加入内容
//      不然,每次新建一个行,之前行的内容就没有了
        Row row1 = sheet.createRow(1);//创建第二行
//      创建 标题字符串数组
//        String [] titleS = new String[]{"序号","省名称","市名称","区县名称","学校名称","年级","班级","教师姓名","教师电话"};
        for (int i = 0;i<titleS.length;i++){
            Cell cell0 = row1.createCell(i);
            String titleContent = titleS[i];
            cell0.setCellValue(titleContent);
            cell0.getRichStringCellValue().applyFont(0,titleContent.length(),whiteFont);
            cell0.setCellStyle(backColor);
//      设置单元格 高度与宽度
            sheet.setColumnWidth(i,20*256);
            sheet.setDefaultRowHeight((short) 400);
            cell0.setCellStyle(backColor);
        }

//    创建第三行
        Row row2 = sheet.createRow(2);
//      创建 例子字符串数组
//        String [] contentS = new String[]{"1","河北省","石家庄市","桥西区","石家庄市第四十中学","七年级","1班,2班","张三","18807010001"};
        for (int j = 0;j<contentS.length;j++){
            Cell cell1 = row2.createCell(j);
            String Content = contentS[j];
            cell1.setCellValue(Content);
            cell1.getRichStringCellValue().applyFont(0,Content.length(),redFont);
            cell1.setCellStyle(cellPosition);
        }

        // 将工作簿保存到文件中
//        FileOutputStream outputStream = new FileOutputStream("E:/浏览器下载位置/output.xlsx");
        workbook.write(outputStream);
        outputStream.close();
    }

Java导出Excel带格式工具类_Java


标签:Java,String,创建,样式,导出,Excel,param,backColor,workbook
From: https://blog.51cto.com/u_16206682/7119580

相关文章

  • Java导出Excel带格式工具类
    Java导出Excel里面有具体内容,带有格式。可以创建工具类直接去使用/***通用模版下载*@paramoutputStream以流的形式输出到浏览器*@paramexcelName下载excel的文件名称*@paramWaring提示语言*@paramtitleS标题列*@paramcontentS......
  • Java应用堆外内存泄露问题排查
    问题是怎么发现的最近有个java应用在做压力测试压测环境配置:CentOS系统4核CPU8g内存jdk1.6.0_25,jvm配置-server-Xms2048m-Xmx2048m出现问题如下执行300并发,压测持续1个小时后内存使用率从20%上升到100%,tps从1100多降低到600多。排查问题的详细过程首先使用top命令查......
  • java高级工程师需要掌握的知识
          结语学习没有捷径,一步一个脚印! ......
  • JavaScript中的标识符和保留字
    标识符。简单地说,标识符就是一个名字。在JavaScript中,标识符用于为JavaScript代码中的常量、变量、属性、函数和类命名,还可用于为某些循环提供标签。JavaScript标识符必须以字母、下划线(_)或美元符号($)开头。后续字符可以是字母、数字、下划线或美元符号(数字不能作为第一个字符,以区......
  • javaSpring操作事务
    1.什么是事务简单理解你:事务就是将一系列动作看成是一次工作单元,又涉及到套娃了举个栗子:转账操作,张三向李四转账100块钱,在转账途中,突然停电,但是账单已经发出去了,这个时候如果没有事务的话,那么张三向李四转账的100块钱将不翼而飞事务的作用,将张三和李四的的转账看成一个动作,要......
  • java判断字符串是否包含某个字符(串)
    判断一个字符串是否包含某个子串的n种方法startsWith()contains方法indexOf方法startsWith()这个方法有两个变体并测试如果一个字符串开头的指定索引指定的前缀或在默认情况下从字符串开始位置此方法定义的语法如下:publicbooleanstartsWith(Stringprefix,inttoffset)orpubl......
  • Java编译优化
    (文章目录)前言编译优化是现代编译器技术的重要组成部分,它通过对代码进行分析和优化,可以使程序在运行过程中减少资源占用,大大提高程序的执行效率和性能。下面通过一个故事来深入地理解编译优化的重要性和实际应用。故事开始于一个著名的互联网公司,该公司的网站在访问量高峰期经......
  • go excel文件处理
    go excel操作packageutilimport("github.com/extrame/xls""github.com/tealeg/xlsx""reflect""strings")//ReadXlsxxlsx解析funcReadXlsx(sheet*xlsx.Sheet)(res[][]string){temp:=make([]......
  • 带你了解JAVA的前世今生
    我们可能会好奇,“它”有什么作用,“它”为什么会被称之为“JAVA”,它为什么又“长”成这样?JAVA介绍Java是一种编程语言,被特意设计用于互联网的分布式环境。Java具有类似于C++语言的“形式和感觉”,但它要比C++语言更易于使用,而且在编程时彻底采用了一种“以对象为导向”的方式。Jav......
  • (Java实体类比表字段多处理方案)注解忽略实体类属性
    背景实体类多添加了几个字段用于查询,如果项目中使用了mybatis或mybatisplus会导致找不到表中字段的错误Causedby:java.sql.SQLSyntaxErrorException:Unknowncolumn'create_start_time'in'fieldlist'解决项目中使用mybatisimportorg.springframework.data.annotat......