Spring 匯出Excel通用方法

2021-08-20 23:21:31 字數 3293 閱讀 4983

/**

* 匯出excel

* @param filename

* -- 匯出的檔名稱

httpservletresponse response) throws ioexception// 定義臨時儲存檔案位置

string path = request.getsession().getservletcontext().getrealpath(constants.upload_pdf);file pathfile = new file(path);

if(!pathfile.exists())

// 獲取登入使用者的資訊

loginuser user = (loginuser) request.getsession().getattribute(constants.user_login_);//返回解析後的excel 檔案位址

string pdfpath= exportfileservice.exporttrainexcel(user.getcenterid(),user.getid(),path,exporttype);// 讀到流中

// 檔案的存放路徑

inputstream instream = null;

// 設定輸出的格式

response.reset();

// 設定為二進位製流格式

response.addheader("content-disposition", "attachment; filename=\"" + filename + "\"");

// 迴圈取出流中的資料

byte b = new byte[100];

int len =0;

try// 刪除臨時檔案

file file =new file(pdfpath);

// 如果檔案存在 刪除。

if(file.exists())instream.close();

} catch (ioexception e)

}

3、service 層

/**

* 通用匯出模板

** @param centerid

* @param id

* @param exporttype

** @return

*/@override

public string exporttrainexcel(integer centerid, integer id, string path,string exporttype) ;

//需要匯出的資料 *************************=》

listdatalist = new arraylist();

datalist.add(new string);

datalist.add(new string);

datalist.add(new string);

datalist.add(new string);

datalist.add(new string);

// 資料區域 *************************=》string filepath =path.concat(file.separator).concat(uuid).concat(".xlsx");//輸出file file = new file(filepath);

// 構造excel 資料

xssfworkbook workbook = excelutil.getworkbook(celltitle,datalist);

fileoutputstream outstream =null;

try catch ( ioexception e )finally catch (ioexception e) }}

return filepath;

4、匯出工具類

/**

* @version 1.0

* @description:

* 匯出excel的工具類

* @projectname: com.taidii.staffdevelopment.util

* @classname: staff-development

* @author:tannc

* @createtime:2018/6/25 10:48

*/public class excelutil

// 定義內容的樣式

cellstyle contentstyle=workbook.createcellstyle();

// 允許excel 單元格換行

contentstyle.setwraptext(true);

// 設定邊框

contentstyle.setborderbottom(borderstyle.thin);

contentstyle.setborderleft(borderstyle.thin);

contentstyle.setborderright(borderstyle.thin);

contentstyle.setbordertop(borderstyle.thin);

contentstyle.setalignment(horizontalalignment.center);

// 內容佔位符

cell contentcell = null;

// 設定內容

if(!collectionutils.isempty(datalist))

else }}

}}

// //資料載入完成,自動調整寬度

// for(int i=0;ireturn workbook;

}}

5、完成

通用Excel匯出

匯出excel時,經常會遇到需要重複性的書寫每個列的名稱,以此造成 編寫的重複書寫,例如 為了避免這種編寫,我們可以採取特性加反射的形式進行 解耦。例子如下 封裝 using model.attribute using npoi.hssf.usermodel using npoi.ss.usermo...

GridControl 通用匯出excel

關於devexpress winform 的所有可列印控制項的匯出excel 的通用方法,並且解決devexpress控制項自帶的方法存在的缺陷問題 1 解決gridcontrol自帶方法不能匯出 2 gridcontrol 的bandgridview 多表頭無法匯出等問題 3 解決pivotgri...

通用excel資料匯出 轉換(三)

這一篇說c 怎麼操作mysql資料庫 我沒有仔細研究為什麼乙個mysql.data不能包含所有基本功能,非得帶3個看似用不著的東西 這樣就可以直接上 了,首先是類開頭的引用 using system.data using system.data.oledb using mysql.data usin...