问题描述
我正在寻找一种方法来选择我要在excel导出中使用的列。我使用的是Jqgrid 4.6版(免费版),这是我的模型的定义:
colNames: ["ID","UPPER_LIBPROJET","Codif_TypeProjet","Codif_EtatProjet","Codif_Porteur","Codif_ChefProjet","Codif_Ouverture","Chargé mécénat","Libellé","Type","Ouvert","Chef projet","Date début","Date fin","Budget HT","Objectif","Famille",""],colModel: [
{name: "ID_PROJET",hidden: true},{name:"UPPER_LIBPROJET",{name: "TYPE_PROJ_",hidden:true},{name: "ETAT_PROJ_",{name: "PORTEUR_",{name: "CHEF_PROJ_",{name: "OUVERTURE_",{name: "ID_USER",{name: "LIBELLE_PROJ",width: 200},{name: "TYPE_PROJET",{name: "OUVERTURE",width: 138},{name: "CHEF_PROJ",{name: "DT_CREATION",width: 120,formatter:'date',formatoptions: { srcformat: "Y-m-d",newformat: "d/m/Y"},sortable: true},{name: "DT_FIN",{name: "BUDGET_HT",width: 100,formatter:'number',sorttype: 'number',{name: "OBJ_COLLECT",{name: "FAMILLE",{name: "action",template: "action",width: 80,align: "center"}
],
正如我所说,目标是找到一种方法来选择我要在excel导出中使用的列(删除隐藏列或除非列)。
这是我用于以csv格式导出的功能:
/**
* Create excel file from grid
* @param {*} gridID - HTML id of the grid (without the # selector)
* @param {*} filename - Optionnal to specify the name of the file
*/
var createExcelFromGrid = function(gridID,filename) {
var grid = $('#' + gridID);
var rowIDList = grid.getDataIDs();
var row = grid.getRowData(rowIDList[0]);
var colNames = [];
var i = 0;
var html ="";
grid.setGridParam({ rowNum: 10000 }).trigger("reloadGrid");
var rowIDList = grid.getDataIDs();
for(var cName in row) {
console.log(cName)
colNames[i++] = cName; // Capture Column Names
html+= cName + ';'
}
html += '\n'
for(var j=0;j<rowIDList.length;j++) {
row = grid.getRowData(rowIDList[j]); // Get Each Row
for(var i = 0 ; i<colNames.length ; i++ ) {
html += row[colNames[i]] + ';'; // Create a CSV delimited with ;
}
html += '\n';
}
html += '\n';
var a = document.createElement('a');
a.id = 'ExcelDL';
a.href = 'data:csv/text;charset=utf-8,' + html;
a.download = filename ? filename + ".csv" : 'export.csv';
document.body.appendChild(a);
a.click(); // Downloads the excel document
document.getElementById('ExcelDL').remove();
}
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)