Экспорт из jqGrid в Excel часть 2
Описанный вот здесь способ таки оказался неудобен. Однако я вспомнил что Excel отлично открывает файл в формате xml. И формат этот хорошо описан здесь. Так почему бы не формировать xml файл? Сказано — сделано. Код видоизменился в :
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 | function exportExcel(list)         {             var mya=new Array();             mya=$(list).getDataIDs();              var data=$(list).getRowData(mya[0]);               var colNames=new Array();              var ii=0;             for (var i in data){colNames[ii++]=i;}             var html="";                         headxls="<?xml version='1.0'?><?mso-application progid='Excel.Sheet'?>"+"\n";             sworkbook="<Workbook xmlns='urn:schemas-microsoft-com:office:spreadsheet' xmlns:o='urn:schemas-microsoft-com:office:office' xmlns:x='urn:schemas-microsoft-com:office:excel' xmlns:ss='urn:schemas-microsoft-com:office:spreadsheet' xmlns:html='http://www.w3.org/TR/REC-html40'>"+"\n";             eworkbook="</Workbook>"+"\n";             styles="<Styles>"+"\n"+                     "<Style ss:ID='borderedbold'>"+"\n"+                     "<Borders>"+"\n"+                     "	  <Border ss:Position='Bottom' ss:LineStyle='Continuous' ss:Weight='1' /> "+"\n"+                     "	  <Border ss:Position='Left' ss:LineStyle='Continuous' ss:Weight='1' /> "+"\n"+                     "	  <Border ss:Position='Right' ss:LineStyle='Continuous' ss:Weight='1' /> "+"\n"+                     "	  <Border ss:Position='Top' ss:LineStyle='Continuous' ss:Weight='1' /> "+"\n"+                     "</Borders>"+"\n"+                     "<Font ss:Bold='1' /> "+"\n"+                     "</Style>"+"\n"+                     "<Style ss:ID='bordered'>"+"\n"+                     "<Borders>"+"\n"+                     "	  <Border ss:Position='Bottom' ss:LineStyle='Continuous' ss:Weight='1' /> "+"\n"+                     "	  <Border ss:Position='Left' ss:LineStyle='Continuous' ss:Weight='1' /> "+"\n"+                     "	  <Border ss:Position='Right' ss:LineStyle='Continuous' ss:Weight='1' /> "+"\n"+                     "	  <Border ss:Position='Top' ss:LineStyle='Continuous' ss:Weight='1' /> "+"\n"+                     "</Borders>"+"\n"+                                         "</Style>"+"\n"+                                         "</Styles> "+"\n";             sworksheet="<Worksheet ss:Name='WorksheetName'>"+"\n";             eworksheet="</Worksheet>"+"\n";             stable="<Table>"+"\n";             etable="</Table>"+"\n";             columnw=""+                     "<Column ss:Index='1' ss:AutoFitWidth='0' ss:Width='60' /> "+"\n"+                     "<Column ss:Index='2' ss:AutoFitWidth='0' ss:Width='200' /> "+"\n"+                     "<Column ss:Index='3' ss:AutoFitWidth='0' ss:Width='200' /> "+"\n"+                     "<Column ss:Index='4' ss:AutoFitWidth='0' ss:Width='130' /> "+"\n"+                     "<Column ss:Index='5' ss:AutoFitWidth='0' ss:Width='130' /> "+"\n"+                     "<Column ss:Index='6' ss:AutoFitWidth='0' ss:Width='120' /> "+"\n";             headcolumn=""+                     	"<Row>"+"\n"+ 			"   <Cell ss:StyleID='borderedbold'><Data ss:Type='String'>Номер</Data></Cell>"+"\n"+ 			"   <Cell ss:StyleID='borderedbold'><Data ss:Type='String'>Склад</Data></Cell>"+"\n"+ 			"   <Cell ss:StyleID='borderedbold'><Data ss:Type='String'>Номенклатура</Data></Cell>"+"\n"+ 			"   <Cell ss:StyleID='borderedbold'><Data ss:Type='String'>Серия</Data></Cell>"+"\n"+ 			"   <Cell ss:StyleID='borderedbold'><Data ss:Type='String'>Дата окончания</Data></Cell>"+"\n"+ 			"   <Cell ss:StyleID='borderedbold'><Data ss:Type='String'>Количество</Data></Cell>"+"\n"+ 			"</Row> "+"\n";             html=html+headxls+sworkbook+styles+sworksheet+stable+columnw+headcolumn;             for(i=0;i<mya.length;i++)                 {                 data=$(list).getRowData(mya[i]);                  html=html+"<Row>"+"\n";                 for(j=0;j<colNames.length;j++)                     {                     html=html+"<Cell ss:StyleID='bordered'><Data ss:Type='String'>"+data[colNames[j]]+"</Data></Cell>"+"\n";                                             }                 html=html+"</Row>"+"\n";                 }             html=html+etable+eworksheet+eworkbook;             document.forms[0].csvBuffer.value=html;             document.forms[0].method='POST';             document.forms[0].action='inc/csvExport.php';              document.forms[0].target='_blank';             document.forms[0].submit();         }; function ViewReports(list,pager){ jQuery(list).jqGrid({    	url:'controller/server/operreports/viewremainssert.php', 	datatype: "json",    	colNames:['Id','Склад','Номенклатура','Серия','Дата окончания','Количество'],    	colModel:[    		{name:'id',index:'id', width:20},                 {name:'sklad',index:'sklad', width:155, width:155,summaryType:'count', summaryTpl : '({0}) Всего:'},    		{name:'namenome',index:'namenome', width:100}, 		{name:'seria',index:'seria', width:100},    		{name:'dtend',index:'dtend', width:100},                 {name:'kol',index:'kol', width:100,sorttype:'number',formatter:'number', summaryType:'sum'}    	],         grouping: true,    	groupingView : {    		groupField : ['sklad'],    		groupText : ['<b>{0}</b>'],                 groupCollapse : true, 		groupSummary : true,    	},                 viewrecords: true,    	height: 'auto',         	autowidth: true,	         shrinkToFit: true,     	pager: pager,    	sortname: 'sklad',     viewrecords: true,     rowNum:1000,     scroll:1,     sortorder: "asc",         caption:"Просоченные сертификаты" });  jQuery(list).jqGrid('navGrid',pager,{edit:false,add:false,del:false,search:false}); jQuery(list).jqGrid('navButtonAdd',pager,{caption:"<img src='controller/client/themes/"+theme+"/ico/disk.png'>",                                       title: "Экспорт в Excel", 	onClickButton:function(){             exportExcel(list); 	}  }); };    ViewReports("#tbl_rep","#pg_nav");      $("#viewwork").click(function(){            jQuery("#tbl_rep").GridUnload("#tbl_rep");            ViewReports("#tbl_rep","#pg_nav");     }); | 
 Купил его собственно еще два месяца назад, но решил сделать обзор только сейчас, когда уже прочувствовал все плюсы и минусы данного планшета.
Купил его собственно еще два месяца назад, но решил сделать обзор только сейчас, когда уже прочувствовал все плюсы и минусы данного планшета.