1. 程式人生 > >摘抄:java查詢數據導出excel並返回給瀏覽器下載

摘抄:java查詢數據導出excel並返回給瀏覽器下載

exp har oca lis Coding var 方式 reat datebox

maven地址為:

<dependency>
    <groupId>org.apache.poi</groupId>
    <artifactId>poi-ooxml</artifactId>
    <version>3.17</version>
</dependency>


好了,廢話不多少,上代碼

jsp前端代碼(根據自己的業務來)

<span style="font-size:18px;"><div style="height:30px;">
<a>時間:</a>
<input id="startDateConsume" type="text" class="easyui-datebox"> <a>-</a>
<input id="endDateConsume" type="text" class="easyui-datebox">
<a>消費類型:</a>
<select id="consumesType" name="">
<option value="0" selected="selected">所有</option>
<option value="1">報名費</option>
<option value="2">酒水零食類</option>
</select>
<a>支付狀態:</a>
<select id="conPaymentStatus" name="">
<option value="0" selected="selected">所有</option>
<option value="1">未支付</option>
<option value="2">已支付</option>
</select>
<a id="btnConsumesSearch" class="easyui-linkbutton"
data-options="iconCls:‘icon-search‘" style="margin-left:10px">查詢</a><a>(查詢出來的數據可統計)</a>
<a id="consumesOutExcel" class="easyui-linkbutton" style="" data-options="iconCls:‘icon-redo‘">導出表</a>
</div></span>

<span style="font-size:18px;">$(function() {
//導出excel表
$(‘#consumesOutExcel‘).on(‘click‘,function(){
exportExcel();
});
});

function exportExcel() {
$.messager.confirm(‘確認‘, ‘確認把該搜索結果導出Excel表格 ?‘, function(r) {
if (r) {
var startTime = $(‘#startDateConsume‘).val();
var endTime = $(‘#endDateConsume‘).val();
var consumesType = $(‘#consumesType‘).val();
var conPaymentStatus = $(‘#conPaymentStatus‘).val();
$.messager.progress({
title : ‘處理中‘,
msg : ‘請稍後‘,
});
$.messager.progress(‘close‘);
location.href="web/vip/exportExcel.xlsx?startTime="+startTime+"&endTime="+endTime+"&consumesType="+consumesType+"&conPaymentStatus="+conPaymentStatus;
}
});
} </span>

java後端代碼:

<span style="font-size:18px;">@Controller
@RequestMapping("/vip")
public class VipController {
//文件下載:導出excel表
@RequestMapping(value = "/exportExcel.xlsx",method = RequestMethod.GET)
@ResponseBody
public void exportExcel(HttpServletRequest request,HttpServletResponse response) throws UnsupportedEncodingException{
//一、從後臺拿數據


if (null == request || null == response)
{
return;
}
List<VipConsumes> list = null;
String startTime = request.getParameter("startTime");
String endTime = request.getParameter("endTime");
int consumesType = Integer.parseInt(request.getParameter("consumesType"));
int conPaymentStatus =Integer.parseInt(request.getParameter("conPaymentStatus"));

VipConsumesExample example = new VipConsumesExample();
if(consumesType!=0 && conPaymentStatus!=0){
example.createCriteria().andTimeBetween(startTime, endTime).andConsumeTypeEqualTo(consumesType).andStatusEqualTo(conPaymentStatus);
}else if(consumesType ==0 && conPaymentStatus!=0) {
example.createCriteria().andTimeBetween(startTime, endTime).andStatusEqualTo(conPaymentStatus);
}else if(consumesType!=0 && conPaymentStatus==0){
example.createCriteria().andTimeBetween(startTime, endTime).andConsumeTypeEqualTo(consumesType);
}else {
example.createCriteria().andTimeBetween(startTime, endTime);
}
list = this.vipConsumesDao.selectByExample(example);
//二、 數據轉成excel
request.setCharacterEncoding("UTF-8");
response.setCharacterEncoding("UTF-8");
response.setContentType("application/x-download");

String fileName = "消費記錄.xlsx";
fileName = URLEncoder.encode(fileName, "UTF-8");
response.addHeader("Content-Disposition", "attachment;filename=" + fileName);
// 第一步:定義一個新的工作簿
XSSFWorkbook wb = new XSSFWorkbook();
// 第二步:創建一個Sheet頁
XSSFSheet sheet = wb.createSheet("startTimeendTime");
sheet.setDefaultRowHeight((short) (2 * 256));//設置行高
sheet.setColumnWidth(0, 4000);//設置列寬
sheet.setColumnWidth(1,5500);
sheet.setColumnWidth(2,5500);
sheet.setColumnWidth(3,5500);
sheet.setColumnWidth(11,3000);
sheet.setColumnWidth(12,3000);
sheet.setColumnWidth(13,3000);
XSSFFont font = wb.createFont();
font.setFontName("宋體");
font.setFontHeightInPoints((short) 16);

XSSFRow row = sheet.createRow(0);
XSSFCell cell = row.createCell(0);
cell.setCellValue("流水號 ");
cell = row.createCell(1);
cell.setCellValue("微信名 ");
cell = row.createCell(2);
cell.setCellValue("微信訂單號");
cell = row.createCell(3);
cell.setCellValue("消費時間");
cell = row.createCell(4);
cell.setCellValue("消費類型");
cell = row.createCell(5);
cell.setCellValue("剩余積分 ");
cell = row.createCell(6);
cell.setCellValue("新增積分 ");
cell = row.createCell(7);
cell.setCellValue("扣除積分 ");
cell = row.createCell(8);
cell.setCellValue("消費金額");
cell = row.createCell(9);
cell.setCellValue("支付方式");
cell = row.createCell(10);
cell.setCellValue("支付狀態 ");
cell = row.createCell(11);
cell.setCellValue("錢包原始金額");
cell = row.createCell(12);
cell.setCellValue("錢包扣除金額");
cell = row.createCell(13);
cell.setCellValue("錢包剩余金額");

XSSFRow rows;
XSSFCell cells;
for (int i = 0; i < list.size(); i++) {
// 第三步:在這個sheet頁裏創建一行
rows = sheet.createRow(i+1);
// 第四步:在該行創建一個單元格
cells = rows.createCell(0);
// 第五步:在該單元格裏設置值
cells.setCellValue(list.get(i).getConsumeId());

cells = rows.createCell(1);
cells.setCellValue(list.get(i).getName());
cells = rows.createCell(2);
cells.setCellValue(list.get(i).getOrderNumber());
cells = rows.createCell(3);
cells.setCellValue(list.get(i).getTime());
cells = rows.createCell(4);
if (list.get(i).getConsumeType() == 2) {
cells.setCellValue("酒水零食費");

} else {
cells.setCellValue("報名費");
}
cells = rows.createCell(5);
cells.setCellValue(list.get(i).getIntegral());
cells = rows.createCell(6);
cells.setCellValue(list.get(i).getIntegralIn());
cells = rows.createCell(7);
cells.setCellValue(list.get(i).getIntegralOut());
cells = rows.createCell(8);
cells.setCellValue(list.get(i).getMoney());
cells = rows.createCell(9);
if (list.get(i).getPayment() == 2) {
cells.setCellValue("積分抵現");
} else if (list.get(i).getPayment() == 3) {
cells.setCellValue("微信支付");
} else if (list.get(i).getPayment() == 4) {
cells.setCellValue("現金");
} else if (list.get(i).getPayment() == 1) {
cells.setCellValue("錢包");
}
cells = rows.createCell(10);
if (list.get(i).getStatus() == 2) {
cells.setCellValue("已支付");
} else if (list.get(i).getStatus() == 1) {
cells.setCellValue("未支付");
}
cells = rows.createCell(11);
cells.setCellValue(list.get(i).getWalletOriginal());
cells = rows.createCell(12);
cells.setCellValue(list.get(i).getWalletOut());
cells = rows.createCell(13);
cells.setCellValue(list.get(i).getWalletSurplus());
}

try {
OutputStream out = response.getOutputStream();
wb.write(out);
out.close();
wb.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

}
}</span>


摘抄原文:https://blog.csdn.net/xiaoyangsavvy/article/details/80239210

摘抄:java查詢數據導出excel並返回給瀏覽器下載