进阶之路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);
}
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 25岁的心里话
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现