java實現Excel匯出

2021-08-21 04:16:33 字數 3903 閱讀 6266

最近在做乙個專案,其中有部分是關於匯出excel,之前去的公司匯出excel都是已經封裝好了的,現在從頭開始寫。用的是比較常用的poi,廢話不多說。

用的框架是ssh,poi的版本是3.17,poi-3.17.jar

功能介紹:匯出查詢結果的報表,如下圖為資料庫隨便填的資料,在頁面上做查詢,從頁面上匯出excel

前端:

href="../export.do"

class="easyui-linkbutton">匯出a>

後台:

//匯出excel

//建立hssfworkbook物件(excel的文件物件)

hssfworkbook wb =

new hssfworkbook();

//建立新的sheet物件(excel的表單)

hssfsheet sheet=wb.createsheet(

"報表");

//在sheet裡建立第一行,引數為行索引(excel的行),可以是0~65535之間的任何乙個

hssfrow row1=sheet.createrow(

0);//建立單元格(excel的單元格,引數為列索引,可以是0~255之間的任何乙個

hssfcell cell=row1.createcell(

0);// 1.生成字型物件

hssffont font = wb.createfont();

font.setfontheightinpoints((

short)

12);

font.setfontname(

"新宋體");

// 2.生成樣式物件,這裡的設定居中樣式和版本有關,我用的poi用hssfcellstyle.align_center會報錯,所以用下面的

hssfcellstyle style = wb.createcellstyle();

// style.setalignment(hssfcellstyle.align_center);//設定居中樣式

style.setfont(font);

// 呼叫字型樣式物件

style.setwraptext(

true);

style.setalignment(horizontalalignment.center);

//設定居中樣式

// 3.單元格應用樣式

cell.setcellstyle(style);

//設定單元格內容

cell.setcellvalue(

"報表");

//合併單元格cellrangeaddress構造引數依次表示起始行,截至行,起始列, 截至列

sheet.addmergedregion(

new cellrangeaddress(

0,0,

0,9));

//在sheet裡建立第二行

hssfrow row2=sheet.createrow(

1);//建立單元格並設定單元格內容及樣式

hssfcell cell0=row2.createcell(

0);cell0.setcellstyle(style);

cell0.setcellvalue(

"住院號");

hssfcell cell1=row2.createcell(

1);cell1.setcellstyle(style);

cell1.setcellvalue(

"身份證號");

hssfcell cell2=row2.createcell(

2);cell2.setcellstyle(style);

cell2.setcellvalue(

"姓名");

hssfcell cell3=row2.createcell(

3);cell3.setcellstyle(style);

cell3.setcellvalue(

"性別");

hssfcell cell4=row2.createcell(

4);cell4.setcellstyle(style);

cell4.setcellvalue(

"總金額");

hssfcell cell5=row2.createcell(

5);cell5.setcellstyle(style);

cell5.setcellvalue(

"基本醫療保險賠付金額");

hssfcell cell6=row2.createcell(

6);cell6.setcellstyle(style);

cell6.setcellvalue(

"補充醫療賠付金額");

hssfcell cell7=row2.createcell(

7);cell7.setcellstyle(style);

cell7.setcellvalue(

"其他賠付金額");

hssfcell cell8=row2.createcell(

8);cell8.setcellstyle(style);

cell8.setcellvalue(

"總賠付金額");

hssfcell cell9=row2.createcell(

9);cell9.setcellstyle(style);

cell9.setcellvalue(

"總自費金額");

//單元格寬度自適應

sheet.autosizecolumn((

short)

3);sheet.autosizecolumn((

short)

4);sheet.autosizecolumn((

short)

5);sheet.autosizecolumn((

short)

6);sheet.autosizecolumn((

short)

7);sheet.autosizecolumn((

short)

8);sheet.autosizecolumn((

short)

9);//寬度自適應可自行選擇自適應哪一行,這裡寫在前面的是適應第二行,寫在後面的是適應第三行

for (

int i =

0; i < solist.size(); i++)

//輸出excel檔案

outputstream output=response.getoutputstream();

response.reset();

response.setheader(

"content-disposition",

"attachment; filename=report.xls");

//檔名這裡可以改

response.setcontenttype(

wb.write(output);

output.close();

return

null;

}最終結果

JAVA實現Excel匯入匯出

建立工程匯入jar包 jxl建立excel檔案 author c public class jxlexpexcel 建立excel檔案 file file new file jxl test.xls try 追加資料 for int i 1 i 10 i 寫入資料 workbook.write wo...

java實現excel匯出例項

宣告下 list是前面操作查詢的結果集。string path request.getsession getservletcontext getrealpath string name 測試 tools.getdatestr new date yyyymmddhhmmss xls xlstransf...

java實現excel的匯入匯出

最進接觸到excel匯入匯出。可以使用poi.jar實現。下面是乙個hello word import org.apache.poi.hssf.usermodel.hssfcell import org.apache.poi.hssf.usermodel.hssfrow import org.apa...