Easyui 使用 datagrid-export.js 导出数据证件号转换成科学计数法的问题,解决方案
$('#dg').datagrid('toExcel', '报表统计.xls');
使用Easyui 导出表格数据,发现导出的数据身份证件号这栏变成了科学计数法,然后载excel里面转换成文本,会丢失证件号最后6位,这个刚开始很棘手,不知道怎么处理,经过一步一步排查。
发现后端返回的证件号是 “6221261988*******” 这样的格式,很明显是字符串模式,哪就排除了json数据转化过程中问题,那么问题就处在前端,分析 datagrid-export.js 源码 发现这个地方:
function toHtml(target, rows, footer, caption){
rows = rows || getRows(target);
rows = rows.concat(footer||getFooterRows(target));
var dg = $(target);
var data = ['<table border="1" rull="all" style="border-collapse:collapse">'];
var fields = dg.datagrid('getColumnFields',true).concat(dg.datagrid('getColumnFields',false));
var trStyle = 'height:32px';
var tdStyle0 = 'vertical-align:middle;padding:0 4px';
if (caption){
data.push('<caption>'+caption+'</caption>');
}
data.push('<tr style="'+trStyle+'">');
for(var i=0; i<fields.length; i++){
var col = dg.datagrid('getColumnOption', fields[i]);
var tdStyle = tdStyle0 + ';width:'+col.boxWidth+'px;';
tdStyle += ';text-align:'+(col.halign||col.align||'');
data.push('<td style="'+tdStyle+'">'+col.title+'</td>');
}
data.push('</tr>');
$.map(rows, function(row){
data.push('<tr style="'+trStyle+'">');
for(var i=0; i<fields.length; i++){
var field = fields[i];
var col = dg.datagrid('getColumnOption', field);
var value = row[field];
if (value == undefined){
value = '';
}
var tdStyle = tdStyle0;
tdStyle += ';text-align:' + (col.align || '');
//liuwei 修正导出证件号科学计数法问题 2022-07-17
if (value != "" && !isNaN(value) && value > 99999999999)
{
tdStyle += ';mso-number-format:\'\@\';';
}
data.push(
'<td style="'+tdStyle+'">'+value+'</td>'
);
}
data.push('</tr>');
});
data.push('</table>');
return data.join('');
}
转化的时候,对大于99999999999,的值按字符串处理,就可以了,当然你可能考虑如果不是证件号,但是值大于99999999999,会不会出现问题,仔细想一下,不会有问题,如果真有这种情况,字符串强制转数字,只要字符串本身是数字,就不会出现问题,所以OK, 当然你也可以用正则判断是不是证件号,然后处理,也是可以的。
注意上述代码红色部门 为增加的js代码, datagrid-export.js
Easyui 使用 datagrid-export.js 导出数据证件号转换成科学计数法的问题,解决方案相关推荐
- ORACLE 导出数据csv文件,数字显示科学计数法
场景 ORACLE 查询数据,使用PLSQL导出csv数据,发现导出的数据字段,如果长度超过了12或者15,用excel打开,会自动显示成科学计数法,如下 解决方案 把oracle查询出来字段显示成 ...
- php导出数字成科学计数法,php导出excel长数字显示成科学计数法格式的解决方案...
php导出excel长数字显示成科学计数法格式的解决方案 首先,我们了解一下excel从web页面上导出的原理.当我们把这些数据发送到客户端时,我们想让客户端程序(浏览器)以excel的格式读取它,所 ...
- js导出科学计数法_怎么让js不自动转换成科学计数法
2016-03-20 回答 function convertnum(beforecounttest) { //转换之前的科学计数法表示 var tempvalue = befo ...
- MySQL使用Navicat导出Excel时数字展示会变成科学计数法
问题描述:MySQL使用Navicat导出Excel时数字会变成科学计数法 解决方法:"数据" 类型需要在导出时转成 "字符串" 类型 select CONCA ...
- 关于数据导出到Excel或wps时避免自动转成科学计数法的处理
SELECT '=T("'+字段+'")' from table 在显示的字段内容前加了 '=T("',在后面也加了'")'.在这这里T()是Excel的函数, ...
- 记录~页面table数据导出到excel时,数字或字符串显示成科学计数法的解决办法
在表格中的<td>标签中添加样式:style="mso-number-format:'\@';" <td style="width:90px;mso-n ...
- 解决使用phpspreadsheet导出Xlsx纯数字字符串变成科学计数法的问题
Demo: <?php $spreadsheet = new \PhpOffice\PhpSpreadsheet\Spreadsheet(); $spreadsheet->getActiv ...
- 【实习小tip】elementUI表格数值加减和实时计算、导出数据并解决手机号科学计数法格式问题、git clone报错:OpenSSL SSL_connect: SSL_ERROR_SYSCALL
element表格数值加减和实时计算 实现效果: 代码: <el-table :data="voListForm" border show-summary :summary- ...
- js 中导出excel 较长数字串会变成科学计数法
在做项目中,碰到如题的问题.比如要将居民的信息导出到excel中,居民的身份证号码因为长度过长(大于10位),excel会自动的将过长的数字串转换成 科学计数法.现在网上找到解决方案之一: (在数字串 ...
最新文章
- 华为:0元 + 3个月 = WEB全栈前端工程师
- java中怎么剪切文件_java中实现文件复制、剪切和删除
- 数据中台应用实战50篇(一)-带你概览BI、数据仓库、数据湖与数据中台之间有什么关联关系?(建议收藏)
- c#中的奇异递归模式
- 力扣498. 对角线遍历
- friso mysql_非sqlite和nigix的开源c项目
- SQLAlchemy schema.Table
- liferay控制面板--网页内容时间不一致问题解决思路
- ios 数组中的字典排序_iOS开发——根据数组中的字典中的某一元素排序
- 硬盘出错,导致文件坏了
- 数据库索引选择的探索(二)之直方图
- java 快递_java模拟物流快递系统程序
- 深度学习的hand-crafted和end-to-end的一些概念和区别
- java俄罗斯方块消除算法_Java 俄罗斯方块消行算法
- maven 国内可用的中央仓库 阿里云
- win32GDI函数编程实现推箱子小游戏
- 鸡兔同笼python程序怎么写_Python解决鸡兔同笼问题的方法
- MM快讯:移动MM折桂中国移动2009年度业务服务创新奖
- 同一无线网络下两台电脑无法Ping通
- 留学生论文辅导一般多少钱?