js插件 datatables 在使用 buttons excelHtml5 时, 数字内容被截断

比如身份证号码, 会被变成科学计数法, 或者把最后几位变成0,
因为在datatables在处理时, 会把纯数字的单元格,设为数字模式,这样就造成了问题。
这里给出一个解决方法 ,就是修改datatables.js  让它不处理长度超过15位的数字,让超过15位的数字, 保持文本格式

[code]

--- jszip-2.5.0_dt-1.10.24_b-1.7.0_b-html5-1.7.0_fh-3.1.8_datatables.min.js     2021-04-23 16:51:59.294590332 +0800
+++ jszip-2.5.0_dt-1.10.24_b-1.7.0_b-html5-1.7.0_fh-3.1.8_datatables.min.js     2021-04-23 16:51:59.294590332 +0800
@@ -27849,7 +27849,8 @@
                                        // TODO Need to provide the ability for the specials to say
                                        // if they are returning a string, since at the moment it is
                                        // assumed to be a number
-                                       if ( row[i].match && ! row[i].match(/^0\d+/) && row[i].match( special.match ) ) {
+                                       if ( row[i].length < 15 &&
+                                               row[i].match && ! row[i].match(/^0\d+/) && row[i].match( special.match ) ) {
                                                var val = row[i].replace(/[^\d\.\-]/g, '');
 
                                                if ( special.fmt ) {
@@ -27872,6 +27873,7 @@
 
                                if ( ! cell ) {
                                        if ( typeof row[i] === 'number' || (
+                                               row[i].length < 15 &&
                                                row[i].match &&
                                                row[i].match(/^-?\d+(\.\d+)?$/) &&
                                                ! row[i].match(/^0\d+/) )
[/code]

对于压缩的js文件, 搜索特征字符串"\/\^0" 然后在前后修改2处:
-if(k[l].match&&!k[l].match(/^0\d+/)&&k[l].match(L.match)){A=k[l].replace(/[^\d\.\-]/g,"");L.fmt&&(A=L.fmt(A));A=y(f,"c",{attr:{r:G,s:L.style},children:[y(f,"v",{text:A})]});break}}A||("number"===typeof k[l]||k[l].match&&k[l].match(/^-?\d+(\.\d+)?$/)&&
+if(k[l].length<15&&k[l].match&&!k[l].match(/^0\d+/)&&k[l].match(L.match)){A=k[l].replace(/[^\d\.\-]/g,"");L.fmt&&(A=L.fmt(A));A=y(f,"c",{attr:{r:G,s:L.style},children:[y(f,"v",{text:A})]});break}}A||("number"===typeof k[l]||k[l].length<15&&k[l].match&&k[l].match(/^-?\d+(\.\d+)?$/)&&
 
 
 
顺便再说一下另一个问题, datatables在tr上增加了一个设置:强制背景为#fff,这样就会覆盖我们自己的一些tr的背景设置,
要在datatables的css里, 找出如下内容,删掉即可
table.dataTable tbody tr{background-color:#fff}