js和Java导出Excel,csv文件

javascript导出Excel文件:

js导出Excel的前提是:必须在IE下,并且在安全级别下启用activeX控件

//导出Excel
	function exproter() {
	/* 	
	var rows = $('#datatable').datagrid('getRows');//获得页面数据
	try{
		//创建操作Excel文件的对象
		var oXL = new ActiveXObject("Excel.Application");
		var oWB = oXL.Workbooks.Add();
		var oSheet = oWB.ActiveSheet;
		//产品名称按顺序
		//定义第一行每一列的值,用for循环写入
		var title=["产品类型","产品编号","产品名称","产品明细","交易金额","单价","数量","总价","用户备注",
		           "商户ID","状态","提交时间","处理方式","结束时间","处理结果","机器号","操作记录","账户余额",
		           "打折金额","是否打折","IP地址",];
		for(var i=0;i<title.length;i++){
			oSheet.Cells(1, i+1).value=title[i];
		}
		for (var i = 0; i < rows.length; i++) {
			oSheet.Cells(i + 2, 1).value = rows[i].protype;
			oSheet.Cells(i + 2, 2).value = rows[i].product;
			oSheet.Cells(i + 2, 3).value = rows[i].productname;
			oSheet.Cells(i + 2, 4).value = rows[i].detail;
			oSheet.Cells(i + 2, 5).value = rows[i].dealmoney;
			oSheet.Cells(i + 2, 6).value = rows[i].price;
			oSheet.Cells(i + 2, 7).value = rows[i].num;
			oSheet.Cells(i + 2, 8).value = rows[i].money;
			oSheet.Cells(i + 2, 9).value = rows[i].uremark;
			oSheet.Cells(i + 2, 10).value = rows[i].userid;
			oSheet.Cells(i + 2, 11).value = rows[i].status;
			oSheet.Cells(i + 2, 12).value = rows[i].intime;
			oSheet.Cells(i + 2, 13).value = rows[i].finishmethod;
			oSheet.Cells(i + 2, 14).value = rows[i].oktime;
			oSheet.Cells(i + 2, 15).value = rows[i].result;
			oSheet.Cells(i + 2, 16).value = rows[i].machine;
			oSheet.Cells(i + 2, 17).value = rows[i].operate;
			oSheet.Cells(i + 2, 18).value = rows[i].ubalance;
			oSheet.Cells(i + 2, 19).value = rows[i].rebate;
			oSheet.Cells(i + 2, 20).value = rows[i].isrebatedone;
			oSheet.Cells(i + 2, 21).value = rows[i].ip;
			}
		//导出时会弹出另存为对话框,让用户自行制定保存位置
		oWB.Close(savechanges=true);
	}catch(e){
		$.messager.alert("提示信息","创建Excel文件失败,请确保您的计算机上安装了Microsoft Office Excel软件,并"+
				"在IE浏览器中做如下设置:单击“安全”中的“自定义级别”,单击“ActiveX控件和插件”,请选择第三项为启用,错误信息:"+e.message, "info");
		return;
	}finally{
		//关闭操作对象
		oXL.Application.Quit();
	} */
}

java导出csv文件:

csv文件格式很简单,只需要将要导出的内容拼接为制定格式,再用流写出就可以了:

	 * 导出
	 * @param request
	 * @param response
	 */
	public void exportService(HttpServletRequest request,HttpServletResponse response){
		try {
			//将第一次查询的条件保存到session,这里封装成对象,导出时再去数据库查询一次
			CurrentRecord currentrecord=(CurrentRecord) request.getSession().getAttribute(Constant.SESSION_RECORDERPARAM);
			currentrecord.setStartIndex(0);
			List<CurrentRecord> currentrecordlist=currentrecorddao.queryCurrentRecord(currentrecord);
			StringBuilder sb=new StringBuilder();
			//将查到的数据拼接为csv文件格式
			sb.append("\"缴费号码\",\"缴费金额\",\"卡点\",\"上报时间\",\"完成时间\",\"状态\",\"通道\",\"机器名\"\r\n");
			for (CurrentRecord c : currentrecordlist) {
				sb.append("\""+c.getChargetelephone()+"\",");
				sb.append("\""+c.getMoney()+"\",");
				sb.append("\""+c.getCode()+"\",");
				sb.append("\""+c.getChargetime()+"\",");
				sb.append("\""+c.getOktime()+"\",");
				sb.append("\""+c.getStatus()+"\",");
				sb.append("\""+c.getChanel()+"\",");
				sb.append("\""+c.getMachine()+"\""+"\r\n");
			}
			String result=sb.toString().replace("null","");//null替换成空格
			response.setContentType("text/html;charset=UTF-8");
	    	BufferedOutputStream bos = null;
			//写出到浏览器,如果用Ajax发送的请求无法下载文件,在页面将请求改为超链接的形式
	    	String filename=new SimpleDateFormat("yyyyMMddHHmmss").format(new Date());
	    	response.setHeader("Content-disposition","attachment;filename=\"" +filename+".csv\"");
	    	bos=new BufferedOutputStream(response.getOutputStream());
			byte b[]=result.getBytes();
			bos.write(b);
			bos.close();
		} catch (SQLException e) {
			e.printStackTrace();
		}
	}
}


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值