tttttptp
  1 /* ======================导出excel=========================== */
  2 
  3 function getXlsFromTbl(inTblId, inTblContainerId, title, rownumbers) {  
  4 
  5     try {  
  6 
  7         var allStr = "";  
  8 
  9         var curStr = "";  
 10 
 11         //alert("getXlsFromTbl");  
 12 
 13         if (inTblId != null && inTblId != "" && inTblId != "null") {  
 14 
 15             curStr = getTblData($(\'#\' + inTblId), $(\'#\' + inTblContainerId), rownumbers);  
 16 
 17             //alert(curStr);
 18 
 19         }  
 20 
 21          if (curStr != null) {  
 22 
 23             allStr += curStr;  
 24 
 25         }  
 26 
 27         else {  
 28 
 29             alert("你要导出的表不存在!");  
 30 
 31             return;  
 32 
 33         }  
 34 
 35         var fileName = getExcelFileName(title);  
 36 
 37         doFileExport(fileName, allStr);   
 38 
 39     }  
 40 
 41     catch (e) {  
 42 
 43         alert("导出发生异常:" + e.name + "->" + e.description + "!");  
 44 
 45     }  
 46 
 47 }  
 48 
 49 function getTblData(curTbl, curTblContainer, rownumbers) {  
 50 
 51   
 52 
 53     var outStr = "";  
 54 
 55     if (curTbl != null) {  
 56 
 57         var rowdata = curTbl.getRowData();  
 58 
 59         var Lenr = 1;  
 60 
 61   
 62 
 63         for (i = 0; i < Lenr; i++) {  
 64 
 65             //var Lenc = curTbl.rows(i).cells.length;  
 66 
 67             var th;  
 68 
 69             if (rownumbers == true) {  
 70 
 71                 th = curTblContainer.find(\'TH:not(:first-child)\');  
 72 
 73             }  
 74 
 75             else {  
 76 
 77                 th = curTblContainer.find(\'TH\');  
 78 
 79             }  
 80 
 81             th.each(function(index, element) {  
 82 
 83                 //alert($(element).text());  
 84 
 85                 //取得每行的列数  
 86 
 87                 var j = index + 1;  
 88 
 89                 var content = $(element).text();  
 90 
 91                 //alert(j + "|" + content);  
 92 
 93                 outStr += content + "\t";  
 94 
 95                 //赋值  
 96 
 97   
 98 
 99             });  
100 
101             outStr += "\r\n";  
102 
103         }  
104 
105         var tmp = "";  
106 
107         for (i = 0; i < rowdata.length; i++) {  
108 
109             var row = eval(rowdata[i]);  
110 
111             for (each in row) {  
112 
113                 outStr += row[each] + "\t";  
114 
115             }  
116 
117             outStr += "\r\n";  
118 
119         }  
120 
121   
122 
123   
124 
125     }  
126 
127     else {  
128 
129         outStr = null;  
130 
131         alert(inTbl + "不存在!");  
132 
133     }  
134 
135     return outStr;  
136 
137 }  
138 
139 function getExcelFileName(title) {  
140 
141     var d = new Date();  
142 
143     var curYear = d.getYear();  
144 
145     var curMonth = "" + (d.getMonth() + 1);  
146 
147     var curDate = "" + d.getDate();  
148 
149     var curHour = "" + d.getHours();  
150 
151     var curMinute = "" + d.getMinutes();  
152 
153     var curSecond = "" + d.getSeconds();  
154 
155     if (curMonth.length == 1) {  
156 
157         curMonth = "0" + curMonth;  
158 
159     }  
160 
161     if (curDate.length == 1) {  
162 
163         curDate = "0" + curDate;  
164 
165     }  
166 
167     if (curHour.length == 1) {  
168 
169         curHour = "0" + curHour;  
170 
171     }  
172 
173     if (curMinute.length == 1) {  
174 
175         curMinute = "0" + curMinute;  
176 
177     }  
178 
179     if (curSecond.length == 1) {  
180 
181         curSecond = "0" + curSecond;  
182 
183     }  
184 
185     var fileName = title + "_" + curYear + curMonth + curDate + "_"  
186 
187             + curHour + curMinute + curSecond + ".csv";  
188 
189     //alert(fileName);   
190 
191     return fileName; 
192 
193     
194 
195 }  
196 
197 function doFileExport(inName, inStr) {  
198 
199      var xlsWin = null;  
200 
201     if (!!document.all("HideFrm")) {  
202 
203         xlsWin = HideFrm; 
204 
205         
206 
207     }  
208 
209     else {  
210 
211         var width = 6;  
212 
213         var height = 4;  
214 
215         var openPara = "left=" + (window.screen.width / 2 - width / 2)  
216 
217                 + ",top=" + (window.screen.height / 2 - height / 2)  
218 
219                 + ",scrollbars=no,width=" + width + ",height=" + height;  
220 
221         xlsWin = window.open("", "_blank", openPara);  
222 
223     } 
224 
225     
226 
227     xlsWin.document.write(inStr);  
228 
229     xlsWin.document.close();  
230 
231     xlsWin.document.execCommand(\'Saveas\', true, inName);  
232 
233     xlsWin.close();    
234 
235 }

必要标签

<iframe id="HideFrm" style="display: none"></iframe>  

<div id="div_list">  

 <table id="list4">  

</table>  

</div>  

<button id="export" value="导出">导出</button> 

    那个iframe可要可不要,不要的话导出的时候会弹出一个网页窗口,要的话比较有好一点,反正是display: none的。table是你要转换为jqGrid的,必须要有一个DIV包裹住这个TABLE,因为导出中要取TABLE的列名要用到。然后对button写一个click事件调用getXlsFromTbl这个方法执行导出就好了。

    getXlsFromTbl有四个参数:第一个参数是要转换成JQGRID的table的ID,第二个参数是包裹这个table的DIV的ID,第三个是用来拼接导出文件名的,第四个参数是指示是否JQGRID显示了rownumbers,就是最前面那一串序号123456什么的。如果你的JQGRID参数设置了rownumber:true,那这边参数就填true,反之同理,否则导出的的文件列会对歪一列. 

分类:

技术点:

相关文章:

  • 2021-11-29
  • 2021-08-16
  • 2021-11-19
  • 2021-10-20
  • 2021-10-26
  • 2021-11-05
  • 2021-09-27
  • 2021-12-05
猜你喜欢
  • 2021-08-16
  • 2021-11-19
  • 2021-12-16
  • 2021-08-16
  • 2021-11-04
  • 2021-12-15
  • 2021-08-16
相关资源
相似解决方案