Jqgrid - экспорт в CSV 140.000 строк - только видимые поля, сохраняйте имена столбцов - PullRequest
0 голосов
/ 31 марта 2020

Мне нужно экспортировать данные jqgrid в csv.

Я уже делаю это так:

if($("#bMainExcel").length == 0){       
        jQuery('#gMain').jqGrid('navButtonAdd','#pMain', {
            id:'bMainExcel',
            caption:'',
            buttonicon: 'fa fa-file-excel',
          title:'Excel',
          onClickButton : function() {
            var vTotRec = $("#gMain").jqGrid('getGridParam','reccount');
            if(vTotRec==0){
              alert(i18next.t('alert.grid_empty'));
              return false;
            };

            // Prendo l'indirizzo base a cui punta la griglia
            var myUrl = jQuery("#gMain").jqGrid('getGridParam', 'url');

            // tolgo anche il parametro idquery se presente
            myUrl=removeParam('idquery', myUrl);

            // tolgo dalla stringa l'indirizzo a cui la griglia punta che non serve piu
            // Va fatto DOPO il removeParam
            myUrl = myUrl.replace('grid_main.php?', '');

            // Prendo tutti i filtri applicati alla griglia e li sommo all'URL
            // In modo da ottenere l'Url completo.
            // escludo il parametro IDQUERY, anche se qui non dovrebbe apparire mai
            var postData = jQuery("#gMain").jqGrid('getGridParam', 'postData');
            $.each(postData, function(key, value) {
              if(key != 'idquery'){
                myUrl += "&"+key+"="+encodeURIComponent(value);
              };
            });

            myUrl = "grid_main.php?idquery=3&" + myUrl;
            // reindirizzo il link per salvare il file excel
            location.href=myUrl;
          }
        });
      };

, как вы видите, я снова вызываю php, передавая другой запрос, который экспортирует данные в csv. Он прекрасно работает, но он не экспортирует только видимые поля, также он не сохраняет имена столбцов в jqgrid, он просто экспортирует весь набор результатов моего php запроса (из mysql).

Поэтому я попытался использовать:

 $("#gfv_gErroriVal").jqGrid('exportToCsv', options); 

, но он работает только с типом данных = local. Я попытался использовать datatype = local (удалив подкачку сервера - в противном случае он экспортирует только первые 100 строк), но моя сетка содержит около 140 000 строк и возвращает ошибку, потому что она слишком большая.

Итак, у меня есть другие варианты? Кто-нибудь может помочь? спасибо!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...