Java poi導(dǎo)出Excel下載到客戶端
更新時(shí)間:2018年02月02日 11:36:32 作者:紫薇帝星的故事
這篇文章主要為大家詳細(xì)介紹了Java poi導(dǎo)出Excel下載到客戶端的相關(guān)方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
Java poi 導(dǎo)出Excel并下載到客戶端,具體內(nèi)容如下
Maven配置,包含了其他文件格式的依賴,就全貼出來了
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-excelant</artifactId>
<version>3.12</version>
</dependency>
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-scratchpad</artifactId>
<version>3.12</version>
</dependency>
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml</artifactId>
<version>3.8</version>
</dependency>
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml-schemas</artifactId>
<version>3.8</version>
</dependency>
Service層
@Override
public void export(Long sblsh, String excelName, OutputStream out) {
try {
// 第一步,創(chuàng)建一個(gè)webbook,對(duì)應(yīng)一個(gè)Excel文件
HSSFWorkbook wb = new HSSFWorkbook();
//生成一個(gè)表格
HSSFSheet sheet = wb.createSheet(excelName);
// 第三步,在sheet中添加表頭第0行
HSSFRow row = sheet.createRow(0);
// 第四步,創(chuàng)建單元格,并設(shè)置值表頭 設(shè)置表頭居中
HSSFCellStyle style = wb.createCellStyle();
style.setAlignment(HSSFCellStyle.ALIGN_CENTER); // 創(chuàng)建一個(gè)居中格式
HSSFCell cell = row.createCell(0);
cell.setCellStyle(style);
Byte kjzz = qyjbxxMapper.getKjzz(sblsh);
List<A> record = this.selectBySblsh(sblsh);
this.insertData(wb, sheet, row, record, out);
}
} catch (Exception e) {
logger.info(e.getMessage());
}
}
/**
* 導(dǎo)入數(shù)據(jù)到表格中
* @param wb execl文件
* @param sheet 表格
* @param row 表格行
* @param record 要導(dǎo)出的數(shù)據(jù)
* @param out 輸出流
*/
private void insertData(HSSFWorkbook wb,HSSFSheet sheet,HSSFRow row,List<A> record,
OutputStream out){
try {
row = sheet.createRow(1);
for(int i=0;i<title.length;i++){
row.createCell(i).setCellValue(title[i]);
}
for(int i=0;i<record.size();i++){
row = sheet.createRow(i+2);
A data = record.get(i);
row.createCell(0).setCellValue(data.getHc());
row.createCell(1).setCellValue(data.getXm());
BigDecimal je = data.getJe();
if(je!=null){
row.createCell(2).setCellValue(je.doubleValue());
}
}
//合并單元格,前面2位代表開頭結(jié)尾行,后面2位代表開頭結(jié)尾列
CellRangeAddress region = new CellRangeAddress(0,0,0,title.length-1);
sheet.addMergedRegion(region);
wb.write(out);
out.flush();
out.close();
wb.close();
} catch (Exception e) {
logger.info(e.getMessage());
}
}
Controller
@RequestMapping("/export")
public void export(Long sblsh, HttpServletRequest request, HttpServletResponse response){
response.setContentType("octets/stream");
String excelName = "文件名";
try {
response.addHeader("Content-Disposition", "attachment;filename="+new String(excelName.getBytes("gb2312"), "ISO8859-1" )+".xls");
OutputStream out = response.getOutputStream();
aService.export(sblsh,excelName ,out);
} catch (Exception e) {
e.printStackTrace();
}
}
以上就是本文的全部內(nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
您可能感興趣的文章:
- Java使用POI導(dǎo)出Excel(一):單sheet
- Java利用POI實(shí)現(xiàn)導(dǎo)入導(dǎo)出Excel表格
- Java用POI導(dǎo)入導(dǎo)出Excel實(shí)例分析
- Java中用POI實(shí)現(xiàn)將數(shù)據(jù)導(dǎo)出到Excel
- Java中利用POI優(yōu)雅的導(dǎo)出Excel文件詳解
- Java使用poi組件導(dǎo)出Excel格式數(shù)據(jù)
- Java使用POI導(dǎo)出大數(shù)據(jù)量Excel的方法
- java poi導(dǎo)出圖片到excel示例代碼
- java使用poi導(dǎo)出Excel的方法
- Java使用POI導(dǎo)出Excel(二):多個(gè)sheet
相關(guān)文章
Java 互相關(guān)聯(lián)的實(shí)體無限遞歸問題的解決
這篇文章主要介紹了Java 互相關(guān)聯(lián)的實(shí)體無限遞歸問題的解決,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-10-10
源碼解析springbatch的job運(yùn)行機(jī)制
這篇文章主要介紹了springbatch的job是如何運(yùn)行的,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-08-08
PowerJob的GridFsManager工作流程源碼解讀
這篇文章主要為大家介紹了PowerJob的GridFsManager工作流程源碼解讀,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2024-01-01
Mybatis resultType返回結(jié)果為null的問題排查方式
這篇文章主要介紹了Mybatis resultType返回結(jié)果為null的問題排查方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-03-03

