$('#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 导出数据证件号转换成科学计数法的问题,解决方案相关推荐

  1. ORACLE 导出数据csv文件,数字显示科学计数法

    场景 ORACLE 查询数据,使用PLSQL导出csv数据,发现导出的数据字段,如果长度超过了12或者15,用excel打开,会自动显示成科学计数法,如下 解决方案 把oracle查询出来字段显示成 ...

  2. php导出数字成科学计数法,php导出excel长数字显示成科学计数法格式的解决方案...

    php导出excel长数字显示成科学计数法格式的解决方案 首先,我们了解一下excel从web页面上导出的原理.当我们把这些数据发送到客户端时,我们想让客户端程序(浏览器)以excel的格式读取它,所 ...

  3. js导出科学计数法_怎么让js不自动转换成科学计数法

    2016-03-20 回答 function convertnum(beforecounttest) {       //转换之前的科学计数法表示       var tempvalue = befo ...

  4. MySQL使用Navicat导出Excel时数字展示会变成科学计数法

    问题描述:MySQL使用Navicat导出Excel时数字会变成科学计数法 解决方法:"数据" 类型需要在导出时转成 "字符串" 类型 select CONCA ...

  5. 关于数据导出到Excel或wps时避免自动转成科学计数法的处理

    SELECT '=T("'+字段+'")' from table 在显示的字段内容前加了 '=T("',在后面也加了'")'.在这这里T()是Excel的函数, ...

  6. 记录~页面table数据导出到excel时,数字或字符串显示成科学计数法的解决办法

    在表格中的<td>标签中添加样式:style="mso-number-format:'\@';" <td style="width:90px;mso-n ...

  7. 解决使用phpspreadsheet导出Xlsx纯数字字符串变成科学计数法的问题

    Demo: <?php $spreadsheet = new \PhpOffice\PhpSpreadsheet\Spreadsheet(); $spreadsheet->getActiv ...

  8. 【实习小tip】elementUI表格数值加减和实时计算、导出数据并解决手机号科学计数法格式问题、git clone报错:OpenSSL SSL_connect: SSL_ERROR_SYSCALL

    element表格数值加减和实时计算 实现效果: 代码: <el-table :data="voListForm" border show-summary :summary- ...

  9. js 中导出excel 较长数字串会变成科学计数法

    在做项目中,碰到如题的问题.比如要将居民的信息导出到excel中,居民的身份证号码因为长度过长(大于10位),excel会自动的将过长的数字串转换成 科学计数法.现在网上找到解决方案之一: (在数字串 ...

最新文章

  1. 华为:0元 + 3个月 = WEB全栈前端工程师
  2. java中怎么剪切文件_java中实现文件复制、剪切和删除
  3. 数据中台应用实战50篇(一)-带你概览BI、数据仓库、数据湖与数据中台之间有什么关联关系?(建议收藏)
  4. c#中的奇异递归模式
  5. 力扣498. 对角线遍历
  6. friso mysql_非sqlite和nigix的开源c项目
  7. SQLAlchemy schema.Table
  8. liferay控制面板--网页内容时间不一致问题解决思路
  9. ios 数组中的字典排序_iOS开发——根据数组中的字典中的某一元素排序
  10. 硬盘出错,导致文件坏了
  11. 数据库索引选择的探索(二)之直方图
  12. java 快递_java模拟物流快递系统程序
  13. 深度学习的hand-crafted和end-to-end的一些概念和区别
  14. java俄罗斯方块消除算法_Java 俄罗斯方块消行算法
  15. maven 国内可用的中央仓库 阿里云
  16. win32GDI函数编程实现推箱子小游戏
  17. 鸡兔同笼python程序怎么写_Python解决鸡兔同笼问题的方法
  18. MM快讯:移动MM折桂中国移动2009年度业务服务创新奖
  19. 同一无线网络下两台电脑无法Ping通
  20. 留学生论文辅导一般多少钱?

热门文章

  1. 中纬ZOOM35全站仪参数和使用说明书
  2. HTML背景颜色及透明度设置
  3. Hadoop单机伪分布式安装详解
  4. 华为Android面试真题解析,大厂直通车!
  5. 信息收集(python篇)-小迪笔记篇
  6. 【图解】“十四五”大数据产业发展规划
  7. WinMount 2.1.2
  8. 百推宝防恶意点击:谷歌难破中国搜索引擎垄断!
  9. AbpVnext 扩展企业微信扫码登录(钉钉登陆、短信登陆、微信登陆等)Vue框架
  10. sql2012 ssrs_如何使用SQL Server Reporting Services(SSRS)增强报告