java導出到Excel(SpringBoot + easyexcel可導出自己想導出的字段)


SpringBoot + easyexcel

 
        
一、依賴

pom.xml


<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>

<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>

<dependency>
<groupId>com.alibaba</groupId>
<artifactId>easyexcel</artifactId>
<version>2.0.5</version>
</dependency>
</dependencies>

二、相關bean

 
package com.exiport.demo.domain;

import com.alibaba.excel.annotation.ExcelIgnore;
import com.alibaba.excel.annotation.ExcelProperty;
import org.springframework.stereotype.Component;

@Component
public class Student {
@ExcelProperty("姓名")
private String name;
@ExcelProperty("學號")//指定字段名字
// @ExcelProperty(index = 0)//指定導出列的順序
// @ExcelIgnore//忽略該字段
private String id;

public Student(String name, String id) {
this.name = name;
this.id = id;
}

public Student() {
}

public String getName() {
return name;
}

public void setName(String name) {
this.name = name;
}

public String getId() {
return id;
}

public void setId(String id) {
this.id = id;
}

@Override
public String toString() {
return "Studen{" +
"name='" + name + '\'' +
", id='" + id + '\'' +
'}';
}
}

ExcelUtil
package com.exiport.demo.util;
import com.alibaba.excel.EasyExcel;
import com.alibaba.excel.ExcelWriter;
import com.alibaba.excel.write.metadata.WriteSheet;
import com.exiport.demo.domain.Student;

import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.util.List;

public class ExcelUtil {
public static void writExcel(HttpServletResponse response, List list) throws IOException {
//將輸出流封裝到excelWriter
ExcelWriter excelWriter = EasyExcel.write(response.getOutputStream()).build();
//定義工作表對象
WriteSheet sheet = EasyExcel.writerSheet(0,"sheet").head(Student.class).build();
//往excel寫入
excelWriter.write(list,sheet);
//關閉輸出流
excelWriter.finish();
}
}

三、Controller(實現)

package com.exiport.demo.controller;

import com.exiport.demo.domain.Student;
import com.exiport.demo.util.ExcelUtil;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.ResponseBody;

import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.UnsupportedEncodingException;
import java.net.URLEncoder;
import java.nio.charset.StandardCharsets;
import java.util.ArrayList;
import java.util.List;

@Controller
public class TestController {
@GetMapping("/test")
@ResponseBody
public void test(HttpServletResponse response) throws IOException {
List<Student> list = new ArrayList<>();
list.add(new Student("劉華強","001"));
list.add(new Student("賣瓜老板","002"));
//返回輸出流。格式Excel
response.setContentType("application/vnd.ms-excel");
//設置表名稱
String name = "學生信息表";
try {
//設置編碼格式
name = URLEncoder.encode(name, StandardCharsets.UTF_8.toString());
// 設置輸出名字 attachment附件
response.setHeader("Content-Disposition","attachment;filename="+name+".xlsx");
ExcelUtil.writExcel(response,list);
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}

}

}

結果:

 

 

                                                                                                                  

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM