欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

java導出excel 瀏覽器直接下載或者或以文件形式導出

 更新時間:2021年06月10日 09:16:25   作者:低調的小白  
這篇文章主要介紹了java導出excel 瀏覽器直接下載或者或以文件形式導出方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教

看代碼吧~

/**
 * excel表格直接下載
 */
public static void exportExcelByDownload(HSSFWorkbook wb,HttpServletResponse httpServletResponse,String fileName) throws Exception {
    //響應類型為application/octet- stream情況下使用了這個頭信息的話,那就意味著不想直接顯示內容
    httpServletResponse.setContentType(MediaType.APPLICATION_OCTET_STREAM_VALUE);
    //attachment為以附件方式下載
    httpServletResponse.setHeader("Content-Disposition","attachment;filename=" + URLEncoder.encode(
            fileName + ".xls",
            "utf-8"));
    /**
     * 代碼里面使用Content-Disposition來確保瀏覽器彈出下載對話框的時候。
     * response.addHeader("Content-Disposition","attachment");一定要確保沒有做過關于禁止瀏覽器緩存的操作
     */
    httpServletResponse.setHeader("Cache-Control", "No-cache");
    httpServletResponse.flushBuffer();
    wb.write(httpServletResponse.getOutputStream());
    wb.close();
}
/**
 * excel以文件的形式導出
 * @throws Exception
 */
public static void exportExcelByFile(HSSFWorkbook wb,String fileName,String path) throws Exception{
    ByteArrayOutputStream stream = new ByteArrayOutputStream();
    wb.write(stream);
    FileOutputStream outputStream = new FileOutputStream(path + fileName);
    outputStream.write(stream.toByteArray());
    stream.close();
    outputStream.close();
}

java查詢數(shù)據(jù)導出excel并返回給瀏覽器下載

效果圖:

1.點擊導出表按鈕

2.接著就會出現(xiàn)下圖

3.點擊上圖中的確定按鈕再接著就會出現(xiàn)下圖

4.點擊上圖中的保存按鈕接著就會出現(xiàn)下圖,瀏覽器下載完成后的提示

5.打開下載好的文件如下圖

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

jsp前端代碼

<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>支付狀態(tài):</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>(查詢出來的數(shù)據(jù)可統(tǒng)計)</a>
	<a id="consumesOutExcel" class="easyui-linkbutton" style="" data-options="iconCls:'icon-redo'">導出表</a>
</div>

js前端代碼

$(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=" rel="external nofollow" +startTime+"&endTime="+endTime+"&consumesType="+consumesType+"&conPaymentStatus="+conPaymentStatus;
		}
	}); 
} 

java后端代碼

@Controller
@RequestMapping("/vip")
public class VipController {
	//文件下載:導出excel表
	@RequestMapping(value = "/exportExcel.xlsx",method = RequestMethod.GET)
	@ResponseBody
	public void exportExcel(HttpServletRequest request,HttpServletResponse response) throws UnsupportedEncodingException{
		//一、從后臺拿數(shù)據(jù)
			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);
			//二、 數(shù)據(jù)轉成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();
    		// 第二步:創(chuàng)建一個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("支付狀態(tài) ");
    		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頁里創(chuàng)建一行
    			rows = sheet.createRow(i+1);
    			// 第四步:在該行創(chuàng)建一個單元格
    			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("積分抵現(xiàn)");
    			} else if (list.get(i).getPayment() == 3) {
    				cells.setCellValue("微信支付");
    			} else if (list.get(i).getPayment() == 4) {
    				cells.setCellValue("現(xiàn)金");
    			} 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();
				}
 
	}
}

以上為個人經驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關文章

  • IDEA 2021.2 激活教程及啟動報錯問題解決方法

    IDEA 2021.2 激活教程及啟動報錯問題解決方法

    這篇文章主要介紹了IDEA 2021.2 啟動報錯及激活教程,文章開頭給大家介紹了idea2021最新激活方法,關于idea2021啟動報錯的問題小編也給大家介紹的非常詳細,需要的朋友可以參考下
    2021-10-10
  • Java動態(tài)代理Proxy應用和底層源碼詳細分析

    Java動態(tài)代理Proxy應用和底層源碼詳細分析

    Java動態(tài)代理是一種在運行時生成代理類的機制,用于代替手動編寫代理類的過程,這篇文章主要給大家介紹了關于Java動態(tài)代理Proxy應用和底層源碼詳細分析的相關資料,需要的朋友可以參考下
    2024-03-03
  • java實現(xiàn)163郵箱發(fā)送郵件到qq郵箱成功案例

    java實現(xiàn)163郵箱發(fā)送郵件到qq郵箱成功案例

    這篇文章主要為大家分享了java實現(xiàn)163郵箱發(fā)送郵件到qq郵箱成功案例,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2016-05-05
  • Java生成word文檔的示例詳解

    Java生成word文檔的示例詳解

    這篇文章主要為大家詳細介紹了如何利用Java語言生成word文檔,文中的示例代碼講解詳細,具有一定的借鑒價值,需要的小伙伴可以參考一下
    2022-12-12
  • Java序列化和反序列化示例介紹

    Java序列化和反序列化示例介紹

    大家好,本篇文章主要講的是Java序列化和反序列化示例介紹,感興趣的同學趕快來看一看吧,對你有幫助的話記得收藏一下,方便下次瀏覽
    2022-01-01
  • Spring Security實現(xiàn)兩周內自動登錄

    Spring Security實現(xiàn)兩周內自動登錄"記住我"功能

    登錄過程中經常使用的“記住我”功能,也就是我們經常會在各種網站登陸時見到的"兩周內免登錄",“三天內免登錄”的功能。今天小編給大家分享基于Spring Security實現(xiàn)兩周內自動登錄"記住我"功能,感興趣的朋友一起看看吧
    2019-11-11
  • Java代碼精簡之道(推薦)

    Java代碼精簡之道(推薦)

    這篇文章主要給大家介紹了Java代碼精簡之道,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-11-11
  • 深入剖析springBoot中的@Scheduled執(zhí)行原理

    深入剖析springBoot中的@Scheduled執(zhí)行原理

    這篇文章主要介紹了springBoot中的@Scheduled執(zhí)行原理,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-11-11
  • java實現(xiàn)OpenGL ES紋理映射的方法

    java實現(xiàn)OpenGL ES紋理映射的方法

    這篇文章主要介紹了java實現(xiàn)OpenGL ES紋理映射的方法,以實例形式較為詳細的分析了紋理映射的實現(xiàn)技巧,需要的朋友可以參考下
    2015-06-06
  • 基于Transactional事務的使用以及注意說明

    基于Transactional事務的使用以及注意說明

    這篇文章主要介紹了Transactional事務的使用以及注意說明,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-07-07

最新評論