导出到 Excel 时将 jQGrid 数字转为文本

jQGrid Number to text while Export to Excel

我正在使用 jqgrid 5.3.2

这是获取数据服务器的我的函数

function GetReportData(gridData) {
            var grid_selector = "#DeliveryStatusReportGrid";
            var pager_selector = "#DeliveyStatusReportpager_list_1";

            $(grid_selector).jqGrid({
                data: gridData,
                datatype: "local",
                height: 400,
                autowidth: true,
                shrinkToFit: true,
                rowNum: 13,
                rowList: [10, 20, 30],
                colNames: ['Code', 'CardAccountNo'],
                colModel: [
                { name: 'Code', width: 10, key: true, align: 'center', hidden: true },

                { name: 'Card_Number', width: 1000, index: 'Card_Number', width: 20, search: true, align: 'center' },
                ],
                pager: pager_selector,
                viewrecords: true,
                caption: "Customer Gift Report",
                hidegrid: false,
                loadComplete: function () {
                    $(grid_selector).jqGrid('setGridWidth', $(grid_selector).closest(".jqgrid").width());
                    jQuery(grid_selector).trigger('resize');
                }
            }).trigger('reloadGrid', [{ page: 1 }]);
        }

这是我导出到 excel

$("#exportToExcel").on("click", function () {
            $("#DeliveryStatusReportGrid").jqGrid("exportToExcel", {
                includeLabels: true,
                includeGroupHeader: true,
                includeFooter: true,
                fileName: "DeliveryStatus.xlsx",
                maxlength: 40 // maxlength for visible string data
            })
        })

但是当我导出到 excel 我的号码改变了 例如 - 5402760000484016 到 5402760000484010 Excel 数字格式问题 所以我想将我的号码转换为文本,以便在使用 Jqgrid 导出到 Excel 时它不会更改或格式化 感谢任何帮助

这实际上是 excel 中的一个问题,无法处理超过 15 位的数字。您可以阅读更多关于此 problem here

我们已经解决了这个问题,并修复了设置数字大于 15 位时显示为字符串的问题。如果您是许可用户,请告诉我们,我们会将修复程序发送给您。

这个问题可以通过使用自定义格式化程序的当前版本来解决,当值被导出到 excel 时,在值的末尾添加一个 space。

{ name: 'Card_Number', 
    width: 1000, 
    index: 'Card_Number', 
    width: 20, 
    search: true, 
    align: 'center',
    formatter : function ( value, options, rdata) {
        if( options.exporttype === "excel") {
            return value+' ';
        } else {
            return value;
        }
    }
 }