jeesite导出excel

前端代码

按钮:

<a href="#" class="btn btn-default" id="btnA" ><i class="fa fa-external-link"></i>${text('导出Execl')}</a>

方法:

$("#btnA").on("click", function() {
	var myForm = document.createElement("form");
	myForm.method = "post";
	myForm.action = "${ctx}/plan/proPlanList/saveExports";

	var createInput = document.createElement("input");
	createInput.setAttribute("name", "Ids");  // 为input对象设置name
	createInput.setAttribute("value", zsr);  // 为input对象设置value
	myForm.appendChild(createInput);

	var p = $("#searchForm").serializeArray();
	for (var i in p){
		var myInput = document.createElement("input");
		myInput.setAttribute("name", p[i].name);  // 为input对象设置name
		myInput.setAttribute("value", p[i].value);  // 为input对象设置value
		myForm.appendChild(myInput);
	}

	document.body.appendChild(myForm);
	myForm.submit();
	document.body.removeChild(myForm);  // 提交后移除创建的form
	js.showMessage('导出成功!');
});

后端代码:

/**
	 * 导出数据excel
	 */
	@RequiresPermissions("plan:proPlanList:edit")
	@RequestMapping(value = "saveExports")
	@ResponseBody
	public void saveExports(Employee employee, HttpServletResponse response) throws IOException {
	
		//声明一个工作簿
		HSSFWorkbook workbook = new HSSFWorkbook();

		//生成一个表格,设置表格名称
		HSSFSheet sheet = workbook.createSheet("员工");
		//设置表格列宽度为20个字节
		sheet.setDefaultColumnWidth(30);

		//创建第一行表头
		HSSFRow headrow = sheet.createRow(0);
		// 设置首行行高
		Row row = sheet.getRow(0);
		row.setHeightInPoints(25);

		//遍历添加表头
		List<String> names = new ArrayList<>();
		names.add("姓名");
		names.add("年龄");
		names.add("性别");
		for (int i = 0; i < names.size(); i++) {
			//创建一个单元格
			HSSFCell cell = headrow.createCell(i);
			//创建一个内容对象
			HSSFRichTextString text = new HSSFRichTextString(names.get(i));
			//将内容对象的文字内容写入到单元格中
			cell.setCellValue(text);

			HSSFCellStyle cellStyle = workbook.createCellStyle();
			// 全局字体垂直居中
			cellStyle.setAlignment(HorizontalAlignment.CENTER_SELECTION);
			cellStyle.setVerticalAlignment(VerticalAlignment.CENTER);
			//下边框
			cellStyle.setBorderBottom(BorderStyle.THIN);
			//左边框
			cellStyle.setBorderLeft(BorderStyle.THIN);
			//上边框
			cellStyle.setBorderTop(BorderStyle.THIN);
			//右边框
			cellStyle.setBorderRight(BorderStyle.THIN);

			// 设置字体样式
			HSSFFont font = workbook.createFont();
			//字体颜色
			font.setColor(HSSFFont.COLOR_RED);
			//字体加粗
			font.setBold(true);
			//字体大小
			font.setFontHeightInPoints((short) 13);
			cellStyle.setFont(font);
			cell.setCellStyle(cellStyle);
		}

		HSSFCellStyle cellSty = workbook.createCellStyle();
		// 全局字体垂直居中
		cellSty.setAlignment(HorizontalAlignment.CENTER_SELECTION);
		cellSty.setVerticalAlignment(VerticalAlignment.CENTER);
		//下边框
		cellSty.setBorderBottom(BorderStyle.THIN);
		//左边框
		cellSty.setBorderLeft(BorderStyle.THIN);
		//上边框
		cellSty.setBorderTop(BorderStyle.THIN);
		//右边框
		cellSty.setBorderRight(BorderStyle.THIN);

		//获取数据
		List<Employee> employeeList = employeeService.getAll()

		//放入数据
		for (int j = 0; j < employeeList.size(); j++){
			Employee ll = employeeList.get(j);
			List<String> llss = new ArrayList<>();
			llss.add(null == ll.getName() ? "" : ll.getName());
			llss.add(null == ll.getAge() ? "" : ll.getAge());
			llss.add(null == ll.getSex() ? "" : ll.getSex());
			HSSFRow row1 = sheet.createRow(j + 1);
			row1.setHeightInPoints(15);
			for (int z = 0; z < proPlanSubList1.size(); z++) {
            	HSSFCell cells = row1.createCell(z);
                HSSFRichTextString text = new 	HSSFRichTextString(llss.get(z));
                cells.setCellValue(text);
                cells.setCellStyle(cellSty);
             }	
		}

		//将Excel的输出流通过response输出到页面下载, 八进制输出流
		response.setContentType("application/octet-stream");

		//这后面可以设置导出Excel的名称
		String exportFileName = "员工.xls";
		String fileNameURL = URLEncoder.encode(exportFileName, "UTF-8");
		response.setHeader("Content-disposition", "attachment;filename=" + fileNameURL + ";" + "filename*=utf-8''" + fileNameURL);
		//刷新缓冲
		response.flushBuffer();
		//workbook将Excel写入到response的输出流中,供页面下载
		workbook.write(response.getOutputStream());
	}

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值