导出报表

@RequestMapping("/exportList")
	@ResponseBody
	public Map<String, Object> aaa(HttpServletRequest request, HttpServletResponse response, HttpSession session,
			ScpShopParam shopParam) throws IOException {

		shopParam.setPagenew(0);
		shopParam.setPagesize(1000);
		Map<String, Object> map = shopService.selectShopAllList(shopParam);

		List<Shop> list = (List<Shop>) map.get("data");
		if (list == null || list.size() == 0) {
			System.out.println("导出店铺数据为空,没有查询到数据!!!!");
		}
		// 创建excel工作簿
		Workbook wb = new HSSFWorkbook();
		// 创建第一个sheet(页),并命名
		Sheet sheet = wb.createSheet("1");

		// 创建第一行
		Row row = sheet.createRow((short) 0);

		// 创建列(每行里的单元格)序号 合伙人 销售代表 线下店铺名称 店铺ID 联系人 手机号 积分 店铺地址 注册时间
		Cell 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("店铺ID");

		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("注册时间");
		SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

		for (short i = 0; i < list.size(); i++) {

			// 创建一行,在页sheet上
			row = sheet.createRow((short) i + 1);
			// 在row行上创建一个方格
			cell = row.createCell(0);
			cell.setCellValue(i + 1);

			cell = row.createCell(1);
			cell.setCellValue(list.get(i).getPartnerName());

			cell = row.createCell(2);
			cell.setCellValue(list.get(i).getBdName());

			cell = row.createCell(3);
			cell.setCellValue(list.get(i).getShopName());

			cell = row.createCell(4);
			cell.setCellValue(list.get(i).getId());

			cell = row.createCell(5);
			cell.setCellValue(list.get(i).getUserName());

			cell = row.createCell(6);
			cell.setCellValue(list.get(i).getMobile());

			cell = row.createCell(7);
			cell.setCellValue(list.get(i).getGold());

			cell = row.createCell(8);
			cell.setCellValue(list.get(i).getUserAddress());

			cell = row.createCell(9);
			cell.setCellValue(format.format(list.get(i).getCreateTime()));
		}

		ByteArrayOutputStream os = new ByteArrayOutputStream();

		try {
			wb.write(os);
		} catch (IOException e) {
			e.printStackTrace();
		}

		byte[] content = os.toByteArray();
		InputStream is = new ByteArrayInputStream(content);

		// 设置response参数,可以打开下载页面
		response.reset();
		response.setContentType("application/vnd.ms-excel;charset=utf-8");
		response.setHeader("Content-Disposition",
				"attachment;filename=" + new String(("店铺客户列表.xls").getBytes(), "iso-8859-1"));

		ServletOutputStream out = response.getOutputStream();

		BufferedInputStream bis = null;
		BufferedOutputStream bos = null;

		try {

			bis = new BufferedInputStream(is);
			bos = new BufferedOutputStream(out);

			byte[] buff = new byte[2048];
			int bytesRead;
			while (-1 != (bytesRead = bis.read(buff, 0, buff.length))) {
				bos.write(buff, 0, bytesRead);
			}

		} catch (final IOException e) {
			throw e;
		} finally {
			if (bis != null)
				bis.close();
			if (bos != null)
				bos.close();
		}
		return null;
	}




 var objdata = {};
 /**
     * 导出列表
     */
    $scope.exportList = function () {
    	 if ($scope.exportSum == 0) {
             tips('当前结果无数据');
         } else {
        	 $http({
                 url: adminUrl+'scp/shop/exportList',
                 method: "GET",//接口方法
                 params: objdata,
                 headers: {
                     'Content-type': 'application/json'
                 },
                 responseType: 'arraybuffer'
             }).success(function (data, status, headers, config) {
                 var blob = new Blob([data], {type: "application/vnd.ms-excel"});
                 var objectUrl = URL.createObjectURL(blob);
                 var a = document.createElement('a');
                 document.body.appendChild(a);
                 a.setAttribute('style', 'display:none');
                 a.setAttribute('href', objectUrl);
                 var filename="店铺客户列表.xls";
                 a.setAttribute('download', filename);
                 a.click();
                 URL.revokeObjectURL(objectUrl);
                 
             }).error(function (data, status, headers, config) {
             	
             });
         } 
    };

  

原文地址:https://www.cnblogs.com/lanliying/p/8793312.html