maven项目中打印和导出(表格)功能实现

本文介绍了如何在Java Maven项目中实现在jsp页面中通过JavaScript函数实现表格的打印和导出Excel功能。通过jQuery发送POST请求获取数据,然后根据浏览器类型选择不同的导出方法,确保在IE和非IE浏览器下都能正常工作。
摘要由CSDN通过智能技术生成


jsp页面:

//打印
	function onPrint() {
		$.post("zwfw/workResult/spWorkListGztz/getPrintContext", {
			name : $("#name").val(),
			baseOrgName : $("#baseOrgName").val()
		}, function(data) {
			var Html = data.HMML;
			document.getElementById("Print2").innerHTML = Html;
			document.getElementById("Main").style.display = "none";

			document.getElementById("Print").style.display = "block";
			window.print();

			document.getElementById("Main").style.display = "block";

			document.getElementById("Print").style.display = "none";
		});
	}

	//导出Excel表格,mytable参数是待导出的table的id
	function tabletoexcel(mytable) {
		$
				.post(
						"zwfw/workResult/spWorkListGztz/getPrintContext",
						{
							name : $("#name").val(),
							baseOrgName : $("baseOrgName").val()
						},
						function(data) {
							var Html = data.html;
							document.getElementById("Print2").innerHTML = Html;

							// getExplore()返回1,说明是不是Google Chrome、Firefox、Opera、Safari,那么就认为是IE了。(网上流传的判断IE的js代码好多在Win7无法使用。。。。。。
							if (getExplorer() == 1) {
								//是IE的话,就调用toExcel()方法来导出Excel表格,不依赖微软的Excel产品。(toExcel()方法的定义见下面)
								toExcel(mytable, '');
								return;
							}

							// 不是IE的话就调用下面的代码导出Excel文件

							//获得id为mytable的table的html元素
							var table = document.getElementById(mytable);
							// 克隆(复制)此table元素,这样对复制品进行修改(如添加或改变table的标题等),导出复制品,而不影响原table在浏览器中的展示。
							table = table.cloneNode(true);
							//下面五行代码就是用来改变table中的某些信息的,不需要的话可以注释,或修改。

							var caption_orig = table
									.getElementsByTagName("caption");
							$(caption_orig).text(name);
							var th_first_ele = table.getElementsByTagName("th")[0];

							// 下面的代码才是真正用来将html table导出Excel表格(我从stackoverflow上看到的,修改了一点点,不会再有中文乱码问题了。)
							var uri = 'data:application/vnd.ms-excel;base64,';
							template = '<html xmlns:o&

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
通常业务需求都是客户端一个导出按钮,发送请求到服务端,服务端写一个接口导出报表到客户端,客户可以自行下载。无论Struts或者springMVC均可。 @RequestMapping("Export") @ResponseBody public String getAll(HttpServletRequest request,HttpServletResponse response) throws IOException{ //集合为需要导出数据,数据查询得到,这里测试就不写了。 List<User> list=new ArrayList<User>(); // 生成Excel文件 HSSFWorkbook hssfWorkbook = new HSSFWorkbook(); HSSFSheet sheet = hssfWorkbook.createSheet("测试数据"); // 表头 HSSFRow headRow = sheet.createRow(0); headRow.createCell(0).setCellValue("姓名"); headRow.createCell(1).setCellValue("手机号码"); headRow.createCell(2).setCellValue("年龄"); // 表格数据 for (User user : list) { HSSFRow dataRow = sheet.createRow(sheet.getLastRowNum() + 1); dataRow.createCell(0).setCellValue(user.getName()); dataRow.createCell(1).setCellValue(user.getPhone()); dataRow.createCell(2).setCellValue(user.getAge()); } // 下载导出(一个流两个头) // 设置头信息 response.setContentType( "application/vnd.ms-excel"); // MIME .jpg .xls .mp3 .avi .txt .exe String filename = "驾驶员数据.xls"; //如果为Struts框架,获得request和response可用ServletActionContext String agent = request .getHeader("user-agent"); filename = FileUtils.encodeDownloadFilename(filename, agent); response.setHeader("Content-Disposition", "attachment;filename=" + filename); ServletOutputStream outputStream = response .getOutputStream(); //输出 hssfWorkbook.write(outputStream); // 关闭 hssfWorkbook.close(); //System.out.println("导出成功"); return "success"; }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值