gpt4 book ai didi

php - jqGrid - 使用 PHP 服务器导出到 Excel

转载 作者:行者123 更新时间:2023-12-01 07:44:36 27 4
gpt4 key购买 nike

我已经将 jqGrid 设置为 DataTables 的替代品,但我缺少的一个重要部分是导出到 Excel 的能力。 DataTables 使用 html5 处理这个问题,并使用 Flash 作为备份方法(我根本不想使用 flash)。

当寻找一种使用 jqGrid 执行此操作的方法时,我看到了几篇很旧的帖子,但没有最近的帖子。我正在使用 php 服务器后端,其中的数据来自 JSON 文件。我看到 jqGrid 的付费版本有 php 版本。有没有一种方法与 jqGrid 的免费版本兼容,我可以用它来导出真正的 Excel 文件(不是 csv)?

最佳答案

jqGrid 按钮

 $grid.jqGrid("navButtonAdd", {
caption: "Export<br />To Excel",
buttonicon: "ui-pg-button-text ui-pg-button-icon-over-text fa-file-excel-o",
title: "Export to Excel",
onClickButton: function () {
exportExcel();
}
});

用于表单输入的 HTML

       <form id='_export' method="post" action="jqGrid/export_excel.php">
<input type="hidden" name="csvBuffer" id="csvBuffer" value="" />
</form>

JAVASCRIPT 用于导出到 Excel 功能

function exportExcel()
{
var keys=[], ii=0, rows="";
var ids=$("#list").getDataIDs();
var row=$("#list").getRowData(ids[0]);
var p = $("#list").jqGrid("getGridParam");
var rows="<table><thead><tr>";
for (var k in row) {
keys[ii++]=k;
rows=rows+'<th>'+p.colNames[ii+1]+'</th>';
}
rows=rows+"</tr></thead><tbody>";
for(i=0;i<ids.length;i++) {
row=$("#list").getRowData(ids[i]);
rows=rows+"<tr>";
for(j=0;j<keys.length;j++){
rows=rows+'<td>'+row[keys[j]]+'</td>';
}
rows=rows+"</tr></tbody>";
}
rows=rows+"</table>";
document.getElementById('csvBuffer').value=rows;
document.getElementById('_export').submit();
}

用于下载 XLS 文件的 PHP

$buffer = $_POST['csvBuffer'];

// file name for download
$filename = "baplie_" . date('Ymd') . ".xls";

header("Content-Disposition: attachment; filename=\"$filename\"");
header("Content-Type: application/vnd.ms-excel");

try{
echo $buffer;
}catch(Exception $e){

}

关于php - jqGrid - 使用 PHP 服务器导出到 Excel,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41051490/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com