Java导出Excel文件的方法

 更新时间:2025年02月08日 08:24:33   作者:黑兔子  
项目里很多接口都涉及导出Excel文件,所以本文给大家总结了项目中导出Excel文件的方法,并通过代码示例讲解的非常详细,具有一定的参考价值,需要的朋友可以参考下

1.请求中不带请求中带HttpServletResponse response。

使用ExcelData和ExportExcelUtils工具类结XSSFWorkbook合实现Excel文件导出

ExcelData data = new ExcelData();
data.setName("页签名称");

// 标题
List<String> titles = new ArrayList();
titles.add("第一列");
titles.add("第二列");
titles.add("第三列");
data.setTitles(titles);

// 内容
List<List<Object>> rows = new ArrayList();
for(int i=0; i<10; i++){
    List<Object> row = new ArrayList();
    row.add(第+"i"+行第一列);
    row.add(第+"i"+行第二列);
    row.add(第+"i"+行第三列);
    rows.add(row);
}
data.setRows(rows);

XSSFWorkbook wb = ExportExcelUtils.exportExcel(data);
ByteArrayOutputStream outByteStream = new ByteArrayOutputStream();
wb.write(outByteStream);
wb.close();

HttpHeaders headers = new HttpHeaders();
headers.add("Content-Type", "application/vnd.ms-excel");
headers.add("Connection", "close");
headers.add("file", "type");
headers.add("Content-Disposition", "attachment; filename=" + new String(fileName.getBytes("utf-8"), "ISO-8859-1"));

return new ResponseEntity<byte[]>(outByteStream.toByteArray(), headers, HttpStatus.CREATED);

2.请求中带HttpServletResponse response。

使用XSSFWorkbook合实现Excel文件导出

response.setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet");
response.setCharacterEncoding("UTF-8");
response.setHeader("file", "type");
response.setHeader("Connection", "close");
response.setHeader("Content-disposition", "attachment;filename=" + ExcelUtil.toUtf8String("文件名"));

String filePath = "/docs/file.xlsx";
InputStream inputStream = new ClassPathResource(filePath).getInputStream();
XSSFWorkbook xssfWorkbook = new XSSFWorkbook(inputStream);

// sheet
XSSFSheet sheetAt = xssfWorkbook.getSheetAt(0);
sheetAt.setColumnWidth(0, 15000);

// 单元格格式
XSSFCellStyle cellStyle = xssfWorkbook.createCellStyle();
cellStyle.setAlignment(HorizontalAlignment.CENTER);
cellStyle.setVerticalAlignment(VerticalAlignment.CENTER);
cellStyle.setBorderTop(BorderStyle.THIN);
cellStyle.setBorderRight(BorderStyle.THIN);
cellStyle.setBorderBottom(BorderStyle.THIN);
cellStyle.setBorderLeft(BorderStyle.THIN);

// 标题
writeValue(sheetAt, cellStyle, 0, 0, "第一列");
writeValue(sheetAt, cellStyle, 0, 0, "第二列");
writeValue(sheetAt, cellStyle, 0, 0, "第三列");

// 内容
for(int i=1; i=10; i++){
    writeValue(sheetAt, cellStyle, i, 0, "第"+i+"行第一列");
    writeValue(sheetAt, cellStyle, i, 1, "第"+i+"行第二列");
    writeValue(sheetAt, cellStyle, i, 2, "第"+i+"行第三列");
}

xssfWorkbook.write(response.getOutputStream());

if (null != xssfWorkbook) {
    xssfWorkbook.close();
}

到此这篇关于Java导出Excel文件的方法的文章就介绍到这了,更多相关Java导出Excel文件内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Java实现年兽大作战游戏详解

    Java实现年兽大作战游戏详解

    春节要到了,看惯了前端各种小游戏,确实做得很好,很精致。本文将为大家介绍一款java版本的年兽大作战游戏,感兴趣的小伙伴可以试一试
    2022-01-01
  • 浅谈MyBatis 事务管理

    浅谈MyBatis 事务管理

    这篇文章主要介绍了浅谈MyBatis 事务管理,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-10-10
  • JAVA后台转换成树结构数据返回给前端的实现方法

    JAVA后台转换成树结构数据返回给前端的实现方法

    这篇文章主要介绍了JAVA后台转换成树结构数据返回给前端的实现方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-03-03
  • 解决Springboot中Feignclient调用时版本问题

    解决Springboot中Feignclient调用时版本问题

    这篇文章主要介绍了解决Springboot中Feign client调用时版本问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-03-03
  • 在MyBatis中开启SQL日志的具体步骤

    在MyBatis中开启SQL日志的具体步骤

    文章详细介绍了在原生MyBatis和SpringBoot中开启MyBatis日志的具体步骤,包括引入日志依赖、配置日志文件和设置日志级别,文章还提供了对比总结和常见问题解答,帮助读者更好地理解和配置MyBatis日志,需要的朋友可以参考下
    2025-11-11
  • mybatis自动生成时如何设置不生成Example类详解

    mybatis自动生成时如何设置不生成Example类详解

    这篇文章主要给大家介绍了关于mybatis自动生成时如何设置不生成Example类的相关资料,文中介绍的非常详细,对大家具有一定的参考学习价值,需要的朋友们下面来一起看看吧。
    2017-05-05
  • Java实现学生管理系统详解流程

    Java实现学生管理系统详解流程

    这篇文章主要为大家详细介绍了如何利用Java语言实现学生管理系统,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-06-06
  • Springboot引入多个yml方法(多种方案)

    Springboot引入多个yml方法(多种方案)

    SpringBoot默认加载的是application.yml文件,所以想要引入其他配置的yml文件,就要在application.yml中激活该文件这篇文章主要介绍了Springboot引入多个yml方法,需要的朋友可以参考下
    2019-10-10
  • Jmeter中正则表达式提取器使用详解

    Jmeter中正则表达式提取器使用详解

    本文主要介绍了Jmeter中正则表达式提取器使用详解,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-11-11
  • 解决eclipse上传svn忽略target文件夹的坑

    解决eclipse上传svn忽略target文件夹的坑

    这篇文章主要介绍了解决eclipse上传svn忽略target文件夹的坑,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2021-01-01

最新评论