导出到 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;
}
}
}
我正在使用 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;
}
}
}