日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Controller数据导出Excel 详细教程——easypoi-base,easypoi-web,easypoi-annotation

發布時間:2025/3/12 编程问答 38 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Controller数据导出Excel 详细教程——easypoi-base,easypoi-web,easypoi-annotation 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Controller獲取數據導出Excel,詳細教程

1:導入對應依賴

<dependency><groupId>cn.afterturn</groupId><artifactId>easypoi-base</artifactId><version>4.1.3</version></dependency><dependency><groupId>cn.afterturn</groupId><artifactId>easypoi-web</artifactId><version>4.1.3</version></dependency><dependency><groupId>cn.afterturn</groupId><artifactId>easypoi-annotation</artifactId><version>4.1.3</version></dependency>

2:創建實體類 User

public class User {//name代表 表頭行 orderNum 代表 排序順序@Excel(name="姓名",orderNum = "0")private String name;@Excel(name="性別",orderNum = "1")private String sex;public String getName() {return name;}public void setName(String name) {this.name = name;}public String getSex() {return sex;}public void setSex(String sex) {this.sex = sex;}

創建工具類 FileUtil工具類,固定寫法,拿去直接用就可以

package hr.manage.util; import cn.afterturn.easypoi.excel.ExcelExportUtil; import cn.afterturn.easypoi.excel.entity.ExportParams; import org.apache.poi.ss.usermodel.Workbook; import javax.servlet.http.HttpServletResponse; import java.io.IOException; import java.net.URLEncoder; import java.util.List;public class FileUtil {public static void exportExcel(List<?> list, String title, String sheetName, Class<?> pojoClass,String fileName, HttpServletResponse response){defaultExport(list, pojoClass, fileName, response, new ExportParams(title, sheetName));}//設置導出文件內的內容private static void defaultExport(List<?> list, Class<?> pojoClass, String fileName, HttpServletResponse response, ExportParams exportParams) {Workbook workbook = ExcelExportUtil.exportExcel(exportParams,pojoClass,list);if (workbook != null);downLoadExcel(fileName, response, workbook);}//設置導出文件名,編碼private static void downLoadExcel(String fileName, HttpServletResponse response, Workbook workbook) {try {response.setCharacterEncoding("UTF-8");//讓服務器告訴瀏覽器它發送的數據屬于什么文件類型response.setHeader("content-Type", "application/vnd.ms-excel");//當Content-Type 的類型為要下載的類型時 , 這個信息頭會告訴瀏覽器這個文件的名字和類型。response.setHeader("Content-Disposition","attachment;filename=" + URLEncoder.encode(fileName, "UTF-8"));workbook.write(response.getOutputStream());} catch (IOException e) {// throw new NormalException(e.getMessage());}}}

創建UserController

package hr.manage.controller.book; import hr.manage.entity.User; import hr.manage.util.FileUtil; import org.springframework.web.bind.annotation.RequestMapping;import javax.servlet.http.HttpServletResponse; import java.util.ArrayList; import java.util.List; //導出數據為Excel @RequestMapping("/user") @Controller public class UserController {@RequestMapping("/excel")public void exceladd(HttpServletResponse response){List<User>list = new ArrayList<>();list.add(new User("張三","男"));list.add(new User("李四","女"));// 參數// 1:傳入數據集合,2:標題,3:工作表名稱 4:實體類的Class 5:保存的Excel名字,傳入HttpServletResponseFileUtil.exportExcel(list,"花名冊","員工",User.class,"花名冊.xls",response);}

開啟tomcat 訪問你自己的路徑

打開Excel 這時數據已經導到里面了

前面步驟都完成的,現在我們可以改造一下代碼,讀取數據庫中的數據
創建和數據表對應的實體類

package hr.manage.entity;import cn.afterturn.easypoi.excel.annotation.Excel;import java.util.Date;import javax.xml.soap.Detail;public class CwgBookManager {//主鍵idprivate Integer id;//編號@Excel(name = "編號",orderNum = "0")private String number;//書名@Excel(name = "書名",orderNum = "1")private String name;//圖書號@Excel(name = "圖書編號",orderNum = "2")private String serialNumber;//出版社@Excel(name = "出版社",orderNum = "3")private String publisher;//作者@Excel(name = "作者",orderNum = "4")private String author;//創建人@Excel(name = "創建人",orderNum = "5")private int createBy;//創建時間@Excel(name = "創建時間",exportFormat ="yyyy-MM-dd", orderNum = "6")private Date creationDate;//冊數,數量@Excel(name = "冊數",orderNum = "7")private int total;//價格@Excel(name = "價格",orderNum = "8")private double price;//備注,詳情@Excel(name = "備注",orderNum = "9")private String detail; // 狀態0:無備案,1,有備案@Excel(name = "備案狀態",orderNum = "10",type = 10)private int status;//備用字段1private String reserve;//備用字段2private String spare;//備用字段3private String standby;public Integer getId() {return id;}//getter,setter方法略 }

查詢數據庫表數據

@Repository public interface BookDao {/*** 查詢book表數據* @return*/@Select("SELECT * FROM cwg_bookmanager")public List<CwgBookManager> findBookList();

編寫Controller

package hr.manage.controller.book; import hr.manage.dao.book.BookDao; import hr.manage.entity.CwgBookManager; import hr.manage.util.FileUtil; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import javax.annotation.Resource; import javax.servlet.http.HttpServletResponse; import java.io.IOException; import java.util.List; /*** 導出Execl*/ @Controller @RequestMapping("/hrm/book") public class ExcelBookController {@Resourceprivate BookDao book;@RequestMapping("/demo")public void execl(HttpServletResponse response) throws IOException {//對應你們查詢數據庫方法List<CwgBookManager> list = book.findBookList();System.out.println("Excel");FileUtil.exportExcel(list,"圖書信息","張三",CwgBookManager.class,"圖書.xls",response);} }

訪問該Controller路徑即可
打開Excel文件 這是可以看到數據庫內的數據都導入到Excel中了

前臺頁面可以編寫一個按鈕,綁定一個單擊事件

jq代碼

function excel(){$.ajax({url:'/HRManagement/hrm/book/demo',type:'get',success:function (data) {if (data != null){alert("導出成功");} }}); }

總結

以上是生活随笔為你收集整理的Controller数据导出Excel 详细教程——easypoi-base,easypoi-web,easypoi-annotation的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。