Экспорт Pdf и Excel файлов jqgrid в jQuery

#javascript #jquery #ajax #jqgrid #export-to-excel

#javascript #jquery #ajax #jqgrid #экспорт в Excel

Вопрос:

Я хочу создать таблицу с помощью средства выбора столбцов. Итак, я попытался использовать jqgrid, я просто изучил примеры кодов и попытался их реализовать, и теперь я хочу экспортировать их в Excel и pdf, но я не могу понять, как это сделать. Я видел много подсказок, но все они отличались друг от друга, что меня действительно смутило. Пожалуйста, помогите мне пройти через это. Мой код :

   <link rel="stylesheet" type="text/css"
  href="http://ajax.googleapis.com/ajax/libs/jqueryui/1.11.1/themes/redmond/jquery-ui.css"/>
  <link rel="stylesheet" type="text/css"
  href="http://cdnjs.cloudflare.com/ajax/libs/jqgrid/4.6.0/css/ui.jqgrid.css"/>
  <link rel="stylesheet" type="text/css"
  href="http://cdnjs.cloudflare.com/ajax/libs/jqgrid/4.6.0/plugins/ui.multiselect.css" />
  <style type="text/css">
  html, body { font-size: 75%; }
  </style>
 <script type="text/javascript"
    src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
 <script type="text/javascript"
    src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.11.1/jquery-ui.min.js"></script>
 <script type="text/javascript"
    src="http://cdnjs.cloudflare.com/ajax/libs/jqgrid/4.6.0/plugins/ui.multiselect.js"></script>
 <script type="text/javascript"
    src="http://cdnjs.cloudflare.com/ajax/libs/jqgrid/4.6.0/js/i18n/grid.locale-en.js"></script>
 <script src="https://cdnjs.cloudflare.com/ajax/libs/xlsx/0.16.9/xlsx.min.js" integrity="sha512- 
   Bkf3qaV86NxX 7MyZnLPWNt0ZI7/OloMlRo8z8KPIEUXssbVwB1E0bWVeCvYHjnSPwh4uuqDryUnRdcUw6FoTg==" 
   crossorigin="anonymous"></script>
 <script type="text/javascript"
    src="http://cdnjs.cloudflare.com/ajax/libs/jqgrid/4.6.0/js/jquery.jqGrid.min.js"></script>
 <script type="text/javascript" 
   src="https://cdnjs.cloudflare.com/ajax/libs/jszip/2.5.0/jszip.min.js"></script>
  <script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/jszip/2.5.0/jszip.js"> 
  </script>
   <script>
            $.ajax({
            type: "POST",
            url: "LoadDataSource.asmx/JsonString",
            contentType: "application/json; charset=utf-8",
            data: JSON.stringify({ _storedProcedureName: "uspGetDataOfQPList1" }),
            dataType: "json",
            success: function (response) {
            var mydata = JSON.parse(response.d)
            
            var grid = jQuery('#colch');
            grid.jqGrid({
            data: mydata,
            datatype: 'local',
            rownumbers: true,
            colNames: ['Sector','SubSector','Occupation','JobRoleName','JobRoleCode','Both','CommonNormsCategory','DeactivationDate','LastReviewed','Manufacturing','NSQCClearance','NSQFLevel','NextReviewed','TechnicalNonTechnical','Version'],
            colModel: [
                { name: 'Sector', index: 'Sector' },
                { name: 'SubSector', index: 'SubSector'},
                { name: 'Occupation', index: 'Occupation' },
                { name: 'JobRoleName', index: 'JobRoleName', width: 200 },
                { name: 'JobRoleCode', index: 'JobRoleCode', width: 200 },
                { name: 'Both', index: 'Both', width: 200 },
                { name: 'CommonNormsCategory', index: 'CommonNormsCategory', width: 200 },
                { name: 'DeactivationDate', index: 'DeactivationDate', width: 200 },
                { name: 'LastReviewed', index: 'LastReviewed', width: 200 },
                { name: 'Manufacturing', index: 'Manufacturing', width: 200 },
                { name: 'NSQCClearance', index: 'NSQCClearance', width: 200 },
                { name: 'NSQFLevel', index: 'NSQFLevel', width: 200 },
                { name: 'NextReviewed', index: 'NextReviewed', width: 200 },
                { name: 'TechnicalNonTechnical', index: 'TechnicalNonTechnical', width: 200 },
                { name: 'Version', index: 'Version', width: 200 }

               
            ],
            rowNum: 40,
                width: '100%',
            height: '100%',
            rowList: [10, 20, 30],
            pager: '#pcolch',
            sortname: 'Sector',
            shrinkToFit: false,
            viewrecords: true,
            sortorder: "desc",
                });
                grid.jqGrid('navGrid', '#pcolch', { add: false, edit: false, del: false, search: false, refresh: false, pdf: true }, {}, {}, {}, {});
                grid.jqGrid('navButtonAdd', '#pcolch', {
                    caption: "Columns",
                    title: "Reorder Columns",
                    onClickButton: function () {
                        grid.jqGrid('columnChooser');
                    }

                });
                grid.jqGrid('navButtonAdd', '#pcolch', {
                    caption: "Print Excel",
                    onClickButton: function () {
                        ExportDataToExcel(grid);
                    }
                });
               function ExportDataToExcel(tableCtrl) {

                var gridData = $("#colch").jqGrid('getRowData');
                var dataToSend = JSON.stringify(gridData);
                jQuery("#colch").jqGrid('excelExport', dataToSend);  
            };
           
    }

         

    });            
 </script>   
 

Комментарии:

1. Что делать с jqGrid(‘excelExport’, dataToSend); метод? Не могли бы вы показать код для этого?

2. Я видел документацию, в которой он использовался как встроенная функция так же, как «выбор столбца». Итак, я использовал это. Я также попытался использовать «exportToExcel», но это также не удалось.

3. Вы используете очень старую версию 4.6, в этой версии экспорт недоступен. Он доступен в Guriddo jqGrid.

4. о! большое спасибо, что выяснили это.

5. Хорошо, я успешно запустил версию 5.5.4. Спасибо за помощь.