进阶之路005 增删改查/数据导入导出之导出功能

1,在pom.xml中注意添加poi依赖

<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi</artifactId>
<version>4.0.1</version>
</dependency>

2,//Controller层

/**
* 导出
*/
@RequestMapping("/heroDownLoad")
public R heroDownLoad(HttpServletResponse response ,@RequestParam Map<String, Object> params){
sysHeroService.downLoadList(response);
return R.ok();
}

3,//Service接口

//导出
void downLoadList(HttpServletResponse response);

4,//接口实现类

//导出表单
@Override
public void downLoadList(HttpServletResponse response) {
try {
String title="XXX表信息.xlsx";
XSSFWorkbook workbook = new XSSFWorkbook();
response.setCharacterEncoding("utf-8");
//以下设置格式
response.setHeader("conent-type", "application/octet-stream");
response.setContentType("application/vnd.ms-excel;charset=utf-8");
response.setHeader("Access-Control-Expose-Headers", "Content-Disposition");
response.setHeader("charset", "utf-8");
response.setHeader("content-disposition","attachment;filename="+new String(title.getBytes("gbk"), "ISO8859-1"));
/*--------------------------------------------------------------------------------*/
OutputStream os = response.getOutputStream();
XSSFSheet sheet=workbook.createSheet("text");
//创建第一行标题行
XSSFRow row=sheet.createRow(0);//创建标题行
XSSFCell id=row.createCell(0);
id.setCellValue("属性");
XSSFCell enHeroName=row.createCell(1);
enHeroName.setCellValue("属性1");
XSSFCell heroName=row.createCell(2);
heroName.setCellValue("属性2");
XSSFCell title01=row.createCell(3);
title01.setCellValue("属性3");
/*----------------------------------------------------------------------------------*/
//开始获取需要导入到excel中的数据
List<SysXxxEntity> list=sysXxxDao.getXxx(null,null,null,null);
int dataIndex=1;//取行索引
for(SysXxxEntity sysXxxEntity:list)
{
XSSFRow datarow=sheet.createRow(dataIndex);//创建数据的第一行
XSSFCell 属性Date=datarow.createCell(0);
属性.setCellValue(sysXxxEntity.get属性());

XSSFCell 属性1Date=datarow.createCell(1);
属性1.setCellValue(sysXxxEntity.get属性1());

XSSFCell 属性2Date=datarow.createCell(2);
属性2.setCellValue(sysXxxEntity.get属性2());

XSSFCell 属性3Date=datarow.createCell(3);
属性3.setCellValue(sysXxxEntity.get属性3());
dataIndex++;
}
workbook.write(os);
os.flush();
os.close();
workbook.close();
}
catch (Exception e) {
System.out.println(e);
}

}

posted @   唯恐不及  阅读(363)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 25岁的心里话
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现
点击右上角即可分享
微信分享提示