jqGrid数据导出

jquery导出jqgrid表格 之前网上没找到现成的jqgrid表格前台导出插件,都或多或少带后台,也不想换表格插件,所以参照extjs自己改了个前台导出插件,支持多表头和分组table带表头导出,引用方法文件有详细注释,直接能用,如有不足还请见谅。 立即下载

原文:http://blog.youkuaiyun.com/xiao_jun_0820/article/details/6622210


言归正传,说说jqGrid数据导出的实现,我也纳闷,JQGRID这么复杂的TABLE都做出来了,为啥就不能给我们这些懒人实现一个导出数据的方法呢,百度狗狗了很久都没找到,只能自己写了。下面就吧我写的JS共享出来

[javascript]  view plain copy
  1. function getXlsFromTbl(inTblId, inTblContainerId, title, rownumbers) {  
  2.     try {  
  3.         var allStr = "";  
  4.         var curStr = "";  
  5.         //alert("getXlsFromTbl");  
  6.         if (inTblId != null && inTblId != "" && inTblId != "null") {  
  7.             curStr = getTblData($('#' + inTblId), $('#' + inTblContainerId), rownumbers);  
  8.         }  
  9.         if (curStr != null) {  
  10.             allStr += curStr;  
  11.         }  
  12.         else {  
  13.             alert("你要导出的表不存在!");  
  14.             return;  
  15.         }  
  16.         var fileName = getExcelFileName(title);  
  17.         doFileExport(fileName, allStr);  
  18.     }  
  19.     catch (e) {  
  20.         alert("导出发生异常:" + e.name + "->" + e.description + "!");  
  21.     }  
  22. }  
  23. function getTblData(curTbl, curTblContainer, rownumbers) {  
  24.   
  25.     var outStr = "";  
  26.     if (curTbl != null) {  
  27.         var rowdata = curTbl.getRowData();  
  28.         var Lenr = 1;  
  29.   
  30.         for (i = 0; i < Lenr; i++) {  
  31.             //var Lenc = curTbl.rows(i).cells.length;  
  32.             var th;  
  33.             if (rownumbers == true) {  
  34.                 th = curTblContainer.find('TH:not(:first-child)');  
  35.             }  
  36.             else {  
  37.                 th = curTblContainer.find('TH');  
  38.             }  
  39.             th.each(function(index, element) {  
  40.                 //alert($(element).text());  
  41.                 //取得每行的列数  
  42.                 var j = index + 1;  
  43.                 var content = $(element).text();  
  44.                 //alert(j + "|" + content);  
  45.                 outStr += content + "\t";  
  46.                 //赋值  
  47.   
  48.             });  
  49.             outStr += "\r\n";  
  50.         }  
  51.         var tmp = "";  
  52.         for (i = 0; i < rowdata.length; i++) {  
  53.             var row = eval(rowdata[i]);  
  54.             for (each in row) {  
  55.                 outStr += row[each] + "\t";  
  56.             }  
  57.             outStr += "\r\n";  
  58.         }  
  59.   
  60.   
  61.     }  
  62.     else {  
  63.         outStr = null;  
  64.         alert(inTbl + "不存在!");  
  65.     }  
  66.     return outStr;  
  67. }  
  68. function getExcelFileName(title) {  
  69.     var d = new Date();  
  70.     var curYear = d.getYear();  
  71.     var curMonth = "" + (d.getMonth() + 1);  
  72.     var curDate = "" + d.getDate();  
  73.     var curHour = "" + d.getHours();  
  74.     var curMinute = "" + d.getMinutes();  
  75.     var curSecond = "" + d.getSeconds();  
  76.     if (curMonth.length == 1) {  
  77.         curMonth = "0" + curMonth;  
  78.     }  
  79.     if (curDate.length == 1) {  
  80.         curDate = "0" + curDate;  
  81.     }  
  82.     if (curHour.length == 1) {  
  83.         curHour = "0" + curHour;  
  84.     }  
  85.     if (curMinute.length == 1) {  
  86.         curMinute = "0" + curMinute;  
  87.     }  
  88.     if (curSecond.length == 1) {  
  89.         curSecond = "0" + curSecond;  
  90.     }  
  91.     var fileName = title + "_" + curYear + curMonth + curDate + "_"  
  92.             + curHour + curMinute + curSecond + ".csv";  
  93.     //alert(fileName);   
  94.     return fileName;  
  95. }  
  96. function doFileExport(inName, inStr) {  
  97.     var xlsWin = null;  
  98.     if (!!document.all("HideFrm")) {  
  99.         xlsWin = HideFrm;  
  100.     }  
  101.     else {  
  102.         var width = 6;  
  103.         var height = 4;  
  104.         var openPara = "left=" + (window.screen.width / 2 - width / 2)  
  105.                 + ",top=" + (window.screen.height / 2 - height / 2)  
  106.                 + ",scrollbars=no,width=" + width + ",height=" + height;  
  107.         xlsWin = window.open("", "_blank", openPara);  
  108.     }  
  109.     xlsWin.document.write(inStr);  
  110.     xlsWin.document.close();  
  111.     xlsWin.document.execCommand('Saveas', true, inName);  
  112.     xlsWin.close();  
  113. }   

用法是这样的,HTML的BODY中必须有这些元素

[html]  view plain copy
  1. <iframe id="HideFrm" style="display: none"></iframe>  
  2.   
  3. <div id="div_list">  
  4.         <table id="list4">  
  5.         </table>  
  6. </div>  
  7. <button id="export" value="导出">导出</button> 
[html]  view plain copy
  1. 那个iframe可要可不要,不要的话导出的时候会弹出一个网页窗口,要的话比较有好一点,反正是display: none的。table是你要转换为jqGrid的,必须要有一个DIV包裹住这个TABLE,因为导出中要取TABLE的列名要用到。然后对button写一个click事件调用getXlsFromTbl这个方法执行导出就好了  
[javascript]  view plain copy
  1. $('#export').click(function() {  
  2.                 var title = "供应信息";  
  3.                 getXlsFromTbl('list4', 'div_list', title, true)  
  4.             });  
[html]  view plain copy
  1. getXlsFromTbl有四个参数:第一个参数是要转换成JQGRID的table的ID,第二个参数是包裹这个table的DIV的ID,第三个是用来拼接导出文件名的,第四个参数是指示是否JQGRID显示了rownumbers,就是最前面那一串序号123456什么的。如果你的JQGRID参数设置了rownumber:true,那这边参数就填true,反之同理,否则导出的的文件列会对歪一列. 
jqGrid控件导入导出Excel文件 jqGrid控件导入导出Excel文件,将几个jqgrid导出一份Excel多sheet文件 ,亦可多sheet的excel导入至多个jqGrid表格。 立即下载

相关推荐

jqgrid 导出成为 JSON, XML, CSV, TSV, TXT, SQL, Word, Excel, PNG,PDF格式

jqgrid 导出成为 JSON, XML, CSV, TSV, TXT, SQL, Word, Excel, PNG,PDF格式

Jqgrid表格控件导出excel文件

Jqgrid导出excel实现思路: 1、根据jqgrid表头样式,使用jquery获取表头样式。为保证对合并单元格表头的兼容,实现中没有使用到jqgrid原声api获取colName等信息。 2、导出文件内容使用xml格式文件。 3、在前头页面生成文件内容,然后将生成文件内容发送到服务端,由服务端生成文件下载。(也有很多直接使用前台下载方式,前台下载目前大多具有浏览器限制问题) /*...

ruixing222的专栏 5301

I2C通信协议SCL与SDA引脚特性:核心要点总结

深入讲解I2C通信协议中SCL和SDA引脚的工作机制与电气特性,帮助理解i2c通信协议的稳定传输原理,掌握上拉电阻配置与信号时序控制要点。

weixin_42103128的博客 2731

jqgrid实现客户端导出Excel、txt、word、json等数据格式的文件

jqgrid插件貌似没有提供导出数据功能,项目以前有用bootstrap-table,有个相应的导出表格数据插件bootstrap-table-export,后面项目将所有的bootstrap-table换成jqgrid表格也想把之前的导出功能移过来。后面去读bootstrap-table-export插件源码发现 作者其实是简单封装另外一个插件 tableExport.js插件。后面网上一搜发现...

重庆李四 1万+

矢量量化的基本原理:高效数据压缩与信息检索的关键矢量量化(Vector Quantization,简称VQ)是一种数据压缩和信

此外,在矢量量化过程中,可能会引入一定的信息损失,对一些精细特征的表示可能存在一定的误差。它通过将高维数据映射到低维码本空间中,并将相似的数据映射到相同的码本向量中,实现对数据的高效表示和存储。最重要的是,矢量量化可以用于数据的检索和分析,提供了高效的数据查询和处理手段。通过使用码本索引,我们可以高效地存储和检索大量的数据。在图像处理中,矢量量化可以用于图像压缩,将复杂的图像数据转化为较少的码字,实现图像的存储和传输。矢量量化通过将连续的高维数据分割并映射到有限的码本集合中,实现数据的离散表示和压缩。

m0_70886513的博客 1372

ADS Layout设计实战:从参数设置到协同仿真

本文详细介绍了ADS Layout设计的完整实战流程,从新建工程、单位设置、个性化偏好配置等基础操作入手,逐步深入到基板参数配置、端口设置与电磁仿真器选择等核心环节。重点阐述了参数化版图设计与扫描优化、以及原理图与Layout协同仿真的高级技巧,并通过一个微带线低通滤波器设计案例,完整演示了从理论到实现的闭环设计方法,帮助工程师高效、准确地完成高频电路版图设计与验证。

weixin_29268637的博客 797

关于jqGrid的导出

jqGrid 导出方法 问题:jqGrid 加载导出,出现一只加载报错; 解决:   jqGrid 其中有有个为Gird.csvExport();的方法,可直接导出表格的各列和其中的数据, 附上一段码 &lt;div style="width:1200px;overflow-x:auto"&gt; &lt;table id='transferList'&gt;&lt;/table&...

duruo28的博客 2461

Lumerical-定向耦合器1

概述:本文章使用FDE求解器对定向耦合器进行了数值仿真,讨论了耦合器的间距相关性,耦合长度相关性,波长相关性。讨论了脊形波导和条形波导两种情况。

m0_61776728的博客 4611

jqgrid 表格数据导出

jqgrid 表格数据导出 jqgrid并没有自带导出表格数据的方法,这里就自己实现了一个,尝试过在页面直接将数据导出,发现只有IE下可以通过调用saveas来实现,但是别的浏览器不支持,于是考虑将数据传回后台,然后后台返回下载文件来实现。 首先,是一段javascript脚本: /** * * * @param table_id 表格的id * @par

fover717的专栏 5976

PyTorch多机训练Loss不一致问题排查指南:基于算子级一致性验证

比较二次训练过程中所有算子的误差,定位存在一致性问题的pytorch算子

Hi20240217的博客 1158

基于FPGA的车道线检测系统设计

本文设计了一种基于FPGA的车道线检测系统,采用Altera Cyclone IV EP4CE10F17C8作为主控芯片,结合OV7725摄像头和LCD显示屏实现实时车道线检测。系统通过硬件流水线处理架构,依次完成图像采集、灰度转换、中值滤波、Sobel边缘检测和Hough变换直线识别等功能模块。所有模块均采用Verilog HDL实现,充分利用FPGA的并行处理能力,显著提升了系统响应速度。测试结果表明,该系统能够有效检测道路车道线,满足实时性要求,为ADAS系统提供了一种高效的硬件解决方案。

huanghm88的专栏 121

如何实现jqGrid数据导出

2019独角兽企业重金招聘Python工程师标准>>> ...

weixin_33709364的博客 415

【UML】第12篇 序列图(1/2)——基本概念和构成

序列图(Sequence Diagram)是一种用于显示对象之间交互的图形化表示。它描述了在特定场景下,对象之间按照时间顺序进行的消息传递和协作过程。在序列图中,对象被表示为带有垂直虚线的矩形,虚线表示对象的生命周期。对象之间的交互通过箭头表示的消息来表示,箭头从一个对象的生命线指向另一个对象的生命线,表示消息的发送和接收。

AI人人懂 3045

通过tableExport.js插件导出jqgrid表格数据

通过tableExport.js插件导出jqgrid表格数据,实现了导出:JSON、XML、CSV、TXT、SQL、MS-Word、Ms-Excel,解决了数据量少而导致的中文乱码问题,解决导出数据无后缀名问题

想吃烤肉 1223

【即插即用模块】注意力篇 | ECCV 2024 | DPB:高低频动态分离+双提示融合,PSNR直冲40+!

本文提出了一种基于频率提示的图像恢复方法FPro,通过动态滤波器分离输入特征的高低频分量,并采用双提示块(DPB)进行频域专属提示生成与调制。DPB包含低频提示调制器(LPM)和高频提示调制器(HPM),分别处理不同频段信号,通过生成提示组件并融合解码器特征来优化恢复效果。实验表明,该方法在U型结构中表现优异,尤其适用于分割、底层视觉和多模态任务。模块通过动态无监督频率分离、频域专属提示生成和适配性融合机制,有效解决了传统方法对频域信息关注不足的问题,显著提升了图像恢复质量。

主要更新底层视觉(去噪、超分等)相关的科研内容,形式为【论文精读】+【论文复现】 147

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

jqgrid demo 导出数据到Excel

jqgrid带 导出数据到Excel 功能的demo: http://www.trirand.net/demophp.aspx      

我的IT之旅 445

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

jqGrid与layui结合 查询将表格数据导出Excel

例如 需要将当前分页数据或全部数据导出为Excel 1、导出当前页数据:使用jqGrid的 var data = $("#table_list").jqGrid('getRowData'); 可获取当前页所有数据 2、导出所有分页总数据:首先获取当前所用到的查询条件 var queryData = $("#table_list").jqGrid('getGridPara...

qq_36601979的博客 1119

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

导出jqgrid表格数据为EXCEL文件,通过tableExport.js插件。

今天公司项目需要做个导出功能,将jqgrid查询出的数据导出为EXCEL表格文件,期间遇到两个问题: 1.导出报错 uncaught exception: INVALID_CHARACTER_ERR: DOM Exception 5 ,原因是插件是老外写的,不支持中文。 2.使用官方的导出代码//$('#jqgrid1').tableExport({ type: 'excel',...

diaofuzuo3286的博客 1428

jqgrid php实例,JavaScript_jqgrid 表格数据导出实例,首先,是一段javascript脚本:复 - phpStudy...

jqgrid 表格数据导出实例首先,是一段javascript脚本:/***** @param table_id 表格的id* @param container_id 容器的id* @param form_id 提交表单的id* @param title 文件名* @param rownumbers*/function getXlsFromTbl(table_id, container_id ,f...

weixin_36329465的博客 228

jqgrid导出CSV

最近一直在弄jqgrid,都是准备在新的项目上的难点。在此过程中遇到了jqgrid需要导出数据至csv,在网上查找了各种资料,没有现成的样例,网上只有导出当前页面上的表格,而项目需要导出所有的数据,所以只有自己在前辈的基础上修改了 以下代码根据网上js导出csv修改而成 $("#del").click(function () { var title = "人员信息";

4991

JqGrid分页表格数据导出excel而两种方式

首先要确定一个问题: 你的数据返回的方式是一次性加载完还是点击下一页重新请求服务器? 根据你上边数据返回的方式,我们分类来处理。 第一种:点击下一页重新请求服务器 这种的话,每次点击下一页是需要重新请求服务器的,所以我们只需发送请求,然后后台从数据库select数据得到list,将list传给生成EXCEL的函数(一般都是用POI)。 ...

350

Jqgrid获取所有表格数据数据

在使用本地数据时,利用ajax获取所有的数据,然后jqgrid利用本地数据自行分页. 如果要导出Excel所有的数据,并切jqgrid已经对数据进行了格式化,自己又不想重新查询所有数据并格式化,则干脆利用jqgrid获取表格的所有数据作为excel的数据源,然后导出. 翻阅jqgrid有//var allData = $(“#table_list_1”).getRowData();//获取所有数

刘罗好帅的爸爸 1万+

jqgrid如何渲染表格数据_jqgrid 表格数据导出实例

首先,是一段javascript脚本:/***** @param table_id 表格的id* @param container_id 容器的id* @param form_id 提交表单的id* @param title 文件名* @param rownumbers*/function getXlsFromTbl(table_id, container_id ,form_id, title, ...

weixin_39938746的博客 194
上一篇: iframe实现无刷新上传文件
下一篇: memcached搭建缓存系统
评论 9
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值