1. 程式人生 > >springboot實現數據庫中數據導出Excel功能

springboot實現數據庫中數據導出Excel功能

header top 查找 ldo cati servlet excel lec 什麽

功能介紹

網上查找了一堆的數據導出代碼,可能是自己基礎比較薄弱的原因還是別的什麽原因,導致一直沒有運行成功,就算是運行成功的,結果也是差強人意。在此總結一下自己借鑒別人已經經過自己整合出來的一個demo。
步驟解析


1. 前臺頁面添加數據導出按鈕。

2. 後臺進行數據的導出功能。
2. 1 數據庫信息的查詢。
將數據庫中的某張表中的數據進行一個查詢,將查詢到的數據進行寫入excel文件中。

2. 2 建立一張excel表進行存儲查詢到的數據。
建立一張excel表,首先建立一個工作簿,然後建立一個sheet,在sheet中建立一行作為表頭,將數據庫查詢到的數據分別放到對應的表頭的下方。

代碼

前臺html頁面代碼如下:


<table border="0" style="margin-top:4px; margin-left: 18px">
<tr>
<td><a href="#" class="easyui-linkbutton" onclick="downloadfile();">數據導出</a></td>

</tr>

</table>


前臺頁面js代碼如下:

function downloadfile(){
window.location.href="/UserExcelDownloads";
}


service和mapper層代碼如下:

//mapper接口代碼
@Select("select * from teacher")
public List<Teacher> teacherinfor();

//service層代碼
public List<Teacher> teacherinfor(){
return teachermapper.teacherinfor();

//同時要建立一個Teacher實體類,類中存放的屬性名要和導出的數據庫中的表的屬性名一樣


後臺Controller層代碼如下:

@RequestMapping(value = "UserExcelDownloads", method = RequestMethod.GET)
public void downloadAllClassmate(HttpServletResponse response) throws IOException {
HSSFWorkbook workbook = new HSSFWorkbook();
HSSFSheet sheet = workbook.createSheet("信息表");

List<Teacher> classmateList = teacherservice.teacherinfor();

String fileName = "userinf" + ".xls";//設置要導出的文件的名字
//新增數據行,並且設置單元格數據

int rowNum = 1;

String[] headers = { "學號", "姓名", "身份類型", "登錄密碼"};
//headers表示excel表中第一行的表頭

HSSFRow row = sheet.createRow(0);
//在excel表中添加表頭

for(int i=0;i<headers.length;i++){
HSSFCell cell = row.createCell(i);
HSSFRichTextString text = new HSSFRichTextString(headers[i]);
cell.setCellValue(text);
}

//在表中存放查詢到的數據放入對應的列
for (Teacher teacher : classmateList) {
HSSFRow row1 = sheet.createRow(rowNum);
row1.createCell(0).setCellValue(teacher.getTno());
row1.createCell(1).setCellValue(teacher.getTname());
row1.createCell(2).setCellValue(teacher.getType());
row1.createCell(3).setCellValue(teacher.getTpassword());
rowNum++;
}

response.setContentType("application/octet-stream");
response.setHeader("Content-disposition", "attachment;filename=" + fileName);
response.flushBuffer();
workbook.write(response.getOutputStream());
}


演示截圖

這裏寫圖片描述
技術分享圖片


圖1 數據中的數據信息

這裏寫圖片描述
技術分享圖片


圖1 userinf.xls表中的數據
---------------------
作者:wilson_m
來源:CSDN
原文:https://blog.csdn.net/wilson_m/article/details/79021458
版權聲明:本文為博主原創文章,轉載請附上博文鏈接!

springboot實現數據庫中數據導出Excel功能