0
点赞
收藏
分享

微信扫一扫

Java写Excel详细步骤

guanguans 2023-08-02 阅读 68

在最近要用导出excel模版,本来用注解去做,但是还要样式。那么就去用poi去做

第一步:导入依赖,结合自己的项目去找合适的版本

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

第二步:创建Excel。1.创建工作簿和工作表,2.设置我们所需要的样式(如果不需要,那么我们就不用去创建样式,走默认样式就可以了)这些样式百度都可以百度到这里就不一一赘述了,3.放入值。excel是先写行然后写列。这里提示一下,创建行后,可以在此行遍历列去在这行加入内容,每一行只用创建一次就可以了。

1.创建工作簿

      // 创建工作簿和工作表
      Workbook workbook = new XSSFWorkbook();
      Sheet sheet = workbook.createSheet("教师导入模版");

2.设置所需要的让样式

// 创建一个样式,设置文本颜色为红色
      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);

3.放入值

// 创建一个单元格,并在其中设置两段文本,分别使用不同的样式
      Row row = sheet.createRow(0);
      Cell cell = row.createCell(0);
      String content = "温馨提示:1、所有字段不可为空;2、学校名称:学校名称需要和导入学校保持一致(如不一致联系您的市场负责人进行修改)3、教师电话不可重复 4、批量导入时请删除本行再进行导入5、班级用英文逗号隔开 ";
      cell.setCellValue(content);
//      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();

这里的第37行 这里大家用的是可以不用写,写一个工具类包裹起来。返回到浏览器。

ZZYExcelUtil.excelDown(response.getOutputStream());

例子展示:

Java写Excel详细步骤_excel


举报

相关推荐

0 条评论