java 一个参数控制是普通查询还是导出操作,适合懒人操作
其实很简单,入参设置一个export(非必传,用小布尔,省了判空的步骤),这样查询的url可以不传export,导出的url则传?export=true
代码如下
package com.test.web.controller; import com.test.entity.po.UserInfo; import com.test.entity.query.UserInfoQuery; import com.test.service.UserInfoService; import org.apache.commons.io.IOUtils; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RestController; import javax.annotation.Resource; import javax.servlet.http.HttpServletResponse; import java.io.FileInputStream; import java.io.IOException; import java.io.OutputStream; import java.util.List; @RestController @RequestMapping("/test") public class TestExportController extends ABaseController{ @Resource private UserInfoService userInfoService; @RequestMapping("/getUser") public List<UserInfo> register(@RequestParam(required = false) boolean export, HttpServletResponse response) { List<UserInfo> result = userInfoService.findListByParam(new UserInfoQuery()); if (export) {// 导出Excel response.setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"); response.setHeader("Content-Disposition", "attachment; filename=data.xlsx"); try (OutputStream os = response.getOutputStream()) { //可以使用easyExcel来快速导出操作,这里直接用本地文件测试。。 FileInputStream fis = new FileInputStream("C:\\Users\\huang\\Desktop\\测试.xlsx"); IOUtils.copy(fis, os); } catch (IOException e) { throw new RuntimeException(e); } return null; } else {// 正常返回数据集 return result; } } }

浙公网安备 33010602011771号