您现在的位置是:主页 > news > ppt主题模板下载免费/深圳seo教程
ppt主题模板下载免费/深圳seo教程
admin2025/6/25 12:37:32【news】
简介ppt主题模板下载免费,深圳seo教程,合肥网站建设方案,7年级微机课做网站的软件目录1、Controller2、Service3、Impl功能需求:浏览器直接敲URL就可以下载文件,也就是前端触发后端提供的GET接口,就可以下载文件。 1、Controller //根据userId查询数据,处理逻辑之后生成excel客户端下载 GetMapping("/dow…
ppt主题模板下载免费,深圳seo教程,合肥网站建设方案,7年级微机课做网站的软件目录1、Controller2、Service3、Impl功能需求:浏览器直接敲URL就可以下载文件,也就是前端触发后端提供的GET接口,就可以下载文件。
1、Controller
//根据userId查询数据,处理逻辑之后生成excel客户端下载
GetMapping("/dow…
目录
- 1、Controller
- 2、Service
- 3、Impl
功能需求:浏览器直接敲URL
就可以下载文件,也就是前端触发后端提供的GET
接口,就可以下载文件。
1、Controller
//根据userId查询数据,处理逻辑之后生成excel客户端下载
@GetMapping("/downloadUser")
@ApiOperation(value="下载用户数据", notes="")
public void downloadUser(String userId, HttpServletResponse response){//下载的请求给客户端的返回可以为void,占用的是客户端的响应流,往它写入数据tDpCountsService.downloadUserData(deviId, response);
}
2、Service
//生成用户excel用户数据
int downloadUserData(String userId, HttpServletResponse response);
3、Impl
@Overridepublic int downloadUserData(String deviId, HttpServletResponse response) {String filename = "test.xls";//可以使用Mapper进行数据库查询//可以查询redis//可以从查询业务数据//一个简单的测试Bean,将来放到list里边通过hutool的ExcelWriter生成excelDownloadDatasVo downloadDatasVo = new DownloadDatasVo();downloadDatasVo.setUserName(userName);downloadDatasVo.setAddress(address);List<DownloadDatasVo> rows = CollUtil.newArrayList(downloadDatasVo);// 通过工具类创建writer,默认创建xls格式ExcelWriter writer = ExcelUtil.getWriter();//自定义标题别名writer.addHeaderAlias("userName", "用户姓名");writer.addHeaderAlias("address", "用户地址");writer.setOnlyAlias(true);//设置列宽writer.setColumnWidth(1, 20);//设置标题writer.merge(2, "用户数据");writer.write(rows, true);//out为OutputStream,需要写出到的目标流//response为HttpServletResponse对象response.setContentType("application/vnd.ms-excel;charset=utf-8");//test.xls是弹出下载对话框的文件名,不能为中文,中文请自行编码response.setHeader("Content-Disposition","attachment;filename="+filename);ServletOutputStream out= null;try {out = response.getOutputStream();} catch (IOException e) {throw new ServiceException("生成用户数据异常");}writer.flush(out, true);// 关闭writer,释放内存writer.close();//此处记得关闭输出Servlet流IoUtil.close(out);return 0;}