21xrx.com
2024-11-05 14:39:24 Tuesday
登录
文章检索 我的文章 写文章
Java代码实现Excel导出避免空行问题
2023-06-13 04:54:27 深夜i     --     --
Java代码 Excel导出 空行问题

在Java开发中,我们经常需要将一些数据导出到Excel中,以方便用户查看和分析。然而,在导出Excel时,有时会出现一些空行的问题,这给用户带来不便。为了避免这个问题,我们可以使用下面的Java代码进行Excel导出。

代码实例:


public void exportExcel(List dataList, String[] headers, String[] fields, String fileName) throws Exception {

  InputStream is = Thread.currentThread().getContextClassLoader().getResourceAsStream("template.xlsx");

  XSSFWorkbook workbook = new XSSFWorkbook(is);

  XSSFSheet sheet = workbook.getSheetAt(0);

  XSSFRow headerRow = sheet.createRow(0);

  for (int i = 0; i < headers.length; i++) {

    XSSFCell cell = headerRow.createCell(i);

    cell.setCellValue(headers[i]);

  }

  int rowIndex = 1;

  for (Object data : dataList) {

    XSSFRow dataRow = sheet.createRow(rowIndex++);

    for (int i = 0; i < fields.length; i++) {

      String fieldName = fields[i];

      Object value = ReflectUtil.getFieldValue(data, fieldName);

      XSSFCell cell = dataRow.createCell(i);

      cell.setCellValue(value == null ? "" : value.toString());

    }

  }

  for (int i = 0; i < headers.length; i++) {

    sheet.autoSizeColumn(i);

  }

  HttpServletResponse response = ServletActionContext.getResponse();

  response.setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet");

  response.setHeader("Content-Disposition", "attachment;filename=" + URLEncoder.encode(fileName, "UTF-8"));

  OutputStream os = response.getOutputStream();

  workbook.write(os);

  os.flush();

  os.close();

}

上面的代码使用了Apache POI实现了Excel导出功能。它从一个模板文件中读取一些格式信息,然后将数据填充到模板中,并输出到浏览器中供用户下载。在填充数据时,我们通过判断每个单元格的值是否为null来避免了出现空行的问题。

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复