js导出的长数字变成科学计数法
table表格导出excel-biginteger长数字导出后变成科学计数法处理
解决方案:
1、Navicat导出
2、可以导出的 html 结构
var appendHtml =
'<table id="query_result1">'
+'<thead class=""><tr><th><div>主键div>th><th><div>创建时间div>th>tr>thead>'
+'<tbody><tr><td style="">24201883434356582td><td style="">2015-10-29 11:21:28td>tr>'
+'<tr><td style="">24201883434356835td><td style="">2015-10-30 16:35:02td>tr>'
+'<tr><td style="">24201883434357061td><td style="">2015-11-01 09:47:24td>tr>tbody>'
+'table>';
//这里replace查询的内容要和实际匹配一下 appendHtml = appendHtml.replace(/<td style=""/g, "<td STYLE='MSO-NUMBER-FORMAT:\\@'"); var html = "
" + appendHtml + "body>html>";
// 实例化一个Blob对象,其构造函数的第一个参数是包含文件内容的数组,第二个参数是包含文件类型属性的对象 var blob = new Blob([html], {
type: "application/vnd.ms-excel"
}); //application/octet-stream
//也可以用js创建一个a标签 var a = document.createElement('a');
// var a = document.getElementsByTagName("a")[0];
// 利用URL.createObjectURL()方法为a元素生成blob URL
a.href = URL.createObjectURL(blob);
// 设置文件名 a.download = "统计表.xls"; //xlsx
a.click();
说明:
1、bigint强转成char无效: select convert(pk_id,CHAR) from xxx_table 无效。
如果excel中 显示一个 绿色的小三角,表示文本格式。
其他,未验证,可百度。
mso-number-format:"0" NO Decimals mso-number-format:"0\.000" 3 Decimals mso-number-format:"\#\,\#\#0\.000" Comma with 3 dec mso-number-format:"mm\/dd\/yy" Date7 mso-number-format:"mmmm\ d\,\ yyyy" Date9 mso-number-format:"m\/d\/yy\ h\:mm\ AM\/PM" D -T AMPM mso-number-format:"Short Date" 01/03/1998 mso-number-format:"Medium Date" 01-mar-98 mso-number-format:"d\-mmm\-yyyy" 01-mar-1998 mso-number-format:"Short Time" 5:16 mso-number-format:"Medium Time" 5:16 am mso-number-format:"Long Time" 5:16:21:00 mso-number-format:"Percent" Percent - two decimals mso-number-format:"0%" Percent - no decimals mso-number-format:"0\.E+00" Scientific Notation mso-number-format:"\@" Text (目前只用过) mso-number-format:"\#\ ???\/???" Fractions - up to 3 digits (312/943)
F6的SQL平台可使用(先把显示条数改到最大) 如果直接通过js给元素批量加style,导出执行时又会去还原。
var targetTableObj = document.getElementById("query_result1"); var appendHtml = targetTableObj.outerHTML; console.log("appendHtml =" + appendHtml); //看看实际是什么,再replace /xxx/g //这里replace查询的内容要和实际匹配一下 appendHtml = appendHtml.replace(/, "); var html = "
" + appendHtml + ""; // 实例化一个Blob对象,其构造函数的第一个参数是包含文件内容的数组,第二个参数是包含文件类型属性的对象 var blob = new Blob([html], { type: "application/vnd.ms-excel" }); //application/octet-stream //也可以用js创建一个a标签 var a = document.createElement('a'); // var a = document.getElementsByTagName("a")[0]; // 利用URL.createObjectURL()方法为a元素生成blob URL a.href = URL.createObjectURL(blob); // 设置文件名 a.download = "统计表.xls"; //xlsx a.click();