后台+前端都需要处理
- pom.xml添加jar包(注意actframework版本,版本太低会不支持act-excel)
<dependency>
<groupId>org.actframework</groupId>
<artifactId>act-excel</artifactId>
<version>1.9.2</version>
</dependency>
- 前端传参数_accept=xlsx可以直接在页面下载excel,若不添加此参数,则直接在页面显示excel, 这里展示下载excel步骤
- 后端
// StudentVO
public class StudentVO implements SimpleBean {
public long id;
public String name;
public int age;
public String score;
public int rank;
// 有冗余字段没关系,excel导出哪些字段,由Controller里@PropertySpec控制
public String sex;
}
// Controller
@GetAction(""exportStu")
@PropertySpec("id as 学生ID,name as 姓名,age as 年龄,totalScore as 总分,rank as 排名")
public List<StudentVO> exportStudent(long stuId) {
List<StudentVO> stu;
// 查询出stu......
return stu;
}
- 前端:<a> <form>都可以,只要能访问到Controller的exportStudent链接就行
// 1、<a>下载
<a href="/exportStu?_accept=xlsx?stuId=12">导出数据</a>
// 2、<form>下载
<form action="/exportStu" method="get">
<button class="ui button small button_tiny_blue" type="button" onclick="$(form).submit();">导出数据</button>
<input id="exportTag" type="hidden" name="_accept" value="xlsx"/>
<input name="stuId" value="12" />
//其他参数......
</form>
重要说明:
有时候只是查询,并不想下载excel,可以给_accept字段的<input>增加disabled属性,如下所示:
<input id="exportTag" type="hidden" name="_accept" value="xlsx" disabled/>