JQGrid \ Excel-选择要导出的列

问题描述

我正在寻找一种方法来选择我要在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 (将#修改为@)