यह, मेरे दृष्टिकोण है सिर्फ एक रूप और नाम "csvBuffer" के साथ एक छिपा तत्व बनाने के अपने js/html फ़ाइल
$("#list").jqGrid('navGrid', '#pager',{view:true, del:false, add:false, edit:false, excel:true})
.navButtonAdd('#pager',{
caption:"Export to Excel",
buttonicon:"ui-icon-save",
onClickButton: function(){
exportExcel();
},
position:"last"
});
function exportExcel()
{
var mya=new Array();
mya=$("#list").getDataIDs(); // Get All IDs
var data=$("#list").getRowData(mya[0]); // Get First row to get the labels
var colNames=new Array();
var ii=0;
for (var i in data){colNames[ii++]=i;} // capture col names
var html="";
for(i=0;i<mya.length;i++)
{
data=$("#list").getRowData(mya[i]); // get each row
for(j=0;j<colNames.length;j++)
{
html=html+data[colNames[j]]+"\t"; // output each column as tab delimited
}
html=html+"\n"; // output each row with end of line
}
html=html+"\n"; // end of line at the end
document.forms[0].csvBuffer.value=html;
document.forms[0].method='POST';
document.forms[0].action='csvExport.php'; // send it to server which will open this contents in excel file
document.forms[0].target='_blank';
document.forms[0].submit();
}
PHP स्क्रिप्ट
header('Content-type: application/vnd.ms-excel');
header("Content-Disposition: attachment; filename=file.xls");
header("Pragma: no-cache");
$buffer = $_POST['csvBuffer'];
try{
echo $buffer;
}catch(Exception $e){
}
शेयर अपने कोड फेलिक्स ग्युरेरो के लिए धन्यवाद:
आप कई एक्सेल माइम प्रकार पर एक नज़र हो सकता था। मुझे एक समस्या है: जब मैं आपका कोड चलाता हूं तो मुझे यह त्रुटि मिलती है: document.forms [0] .csvBuffer अपरिभाषित है, क्या आप इसे ठीक करने में मेरी सहायता कर सकते हैं? –
यह कोड केवल दृश्यमान पंक्तियों पर विचार करने के लिए प्रतीत होता है, क्या आपको पूर्ण सूची प्राप्त करने के बारे में कोई संकेत है (यानी वर्तमान पृष्ठ में केवल पंक्तियां नहीं)? – Don
क्या यह बैक एंड से डेटा लाता है? मुझे नहीं लगता.. –