因此,从这一步开始,我将转向下一个方法:
使用初始 JSON 将所有必要的数据收集到数组中(防止您只收集单独的选定数据);
使用所有现有数据初始化父网格列并将嵌套列标记为隐藏。然后在导出时不要忘记添加 true 参数来导出两个非/隐藏列;
使用带有自定义数组参数的标准导出;
而已!
数据收集:
var toExport = data.allClientsCountChart;
var exp = new Array();
for(var i in toExport){
var client = {};
var countr = toExport[i].countries;
client[labels.clientType]=toExport[i].clientType;
client[labels.clientTypeCount]=toExport[i].clientTypeCount;
exp.push(client);
for(var j in countr) {
var country = {}
var detailes = countr[j].clientDetails;
country[labels.countryType]=countr[j].countryType;
country[labels.clientsNumber]=countr[j].clientsNumber;
exp.push(country);
for(var d in detailes) {
var det = {}
det[labels.scriptName]=detailes[d].scriptName;
det[labels.clientsCount]=detailes[d].clientsCount;
exp.push(det);
}
}
}
出口:
$("#excelExport").click(function () {
$("#jqxGrid").jqxGrid('exportdata', 'csv', chartName + ' ' + date, true, exp, true);
}
并且不要忘记将第五个 pafameter 设置为 true 以导出隐藏列。
毫无疑问,它看起来是硬编码的。但它对我有用。
所以,如果你有一个好的解决方案 - 请发表评论!!!