导出jqgrid表格,csv格式。

1 篇文章 0 订阅
1 篇文章 0 订阅
function jqgrid2csv(dom,fileName){
	var options={
			csvEnclosure:"\"",
			csvSeparator:",",
			type : "text/csv;charset=utf-8"			
	}
	function fake_click(obj) {  
	    var ev = document.createEvent("MouseEvents");  
	    ev.initMouseEvent("click", true, false, window);   
	    obj.dispatchEvent(ev);  
	}

	function save_local_file(name, data){
		var opts={
				type:options.type
		}
	    var url = window.URL || window.webkitURL || window;
	    var file ;
	    try {
			file = new File([data], name, opts);
		} catch (e) {
			file = new Blob([data], opts);
		}
		
	    var link = document.createElementNS("http://www.w3.org/1999/xhtml", "a");
	    link.href = url.createObjectURL(file);
	    link.download = name;
	    fake_click(link);
	}
	function escapeRegExp (string) {
	      return string.replace(/([.*+?^=!:${}()|\[\]\/\\])/g, "\\$1");
	}
	function replaceAll (s, find, replace) {
	      return s.replace(new RegExp(escapeRegExp(find), 'g'), replace);
	}
	function csvString(csvValue){
		var result = replaceAll(csvValue, options.csvEnclosure, options.csvEnclosure + options.csvEnclosure);
        //if ( result.indexOf(options.csvSeparator) >= 0 || /[\r\n ]/g.test(result) )
        result = options.csvEnclosure + result + options.csvEnclosure;
        return result;		
	}
	
	var lines = $(dom).find(".ui-jqgrid-htable tr,.ui-jqgrid-btable tr");
	var i;
	var data=[];
	for(i=0;i<lines.length;i++){
		if($(lines[i]).hasClass("jqgfirstrow"))continue;
		var fields = $(lines[i]).find("td");
		if(fields.length<1) fields = $(lines[i]).find("th");
		var c;
		var a=[];
		for(c=0;c<fields.length;c++){
			var v = $(fields[c]).text();
			if(v==undefined || v==null)v='';
			a.push(csvString(v));			
		}
		data.push(a.join(",")+"\r\n");		
	}
	
	var s = data.join("");
	
	save_local_file(fileName,s);
}

 代码为完整js,可直接引用。

​此脚本仅依赖于jquery,无其他依赖。

用法:

1.导出不含表头: jqgrid2csv("#grid1_core","filename.csv");

2.导出包含表头: 要求第一个参数传入 表格所在容器的id或者name

    jqgrid2csv("#grid1","filename.csv");

    jqgrid2csv("[name=grid1]","filename.csv");

csv文件默认为utf-8编码,无BOM,可用记事本打开(推荐Notepad++)

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值