问题:直接把HTML里的TABLE导出excel,默认会把过长的数字类型转成科学计数法,这在导出身份证号这种信息的时候非常麻烦。
方法一:在数字前面加上一个符号,比如',这样就会自动变成文本形式了
但是一排带着单引号的身份证号看着还是很别扭,尤其是强迫症患者。当然,加一些透明或隐藏符号也行。不过有时候没法这么做,后续对EXCEL操作可能出问题。
方法二:在导出的TABLE的TD标签加上一个样式:vnd.ms-excel.numberformat:@
比如
<td style="vnd.ms-excel.numberformat:@">1111111111111111111</td>
这样EXCEL解析会把单元格默认成文本,格子左上角带个绿色的箭头
vue中的使用
在node_modules中找到js-table2excel下的index.js文件
随后在导出表格中修改样式
// 导出表格
exportToExcel(table, excelName)
function getTextHtml(val) {
return `<td style="text-align: center;vnd.ms-excel.numberformat:@">${val}</td>`
}
扩展:除了文本,还有其他的格式
日期:vnd.ms-excel.numberformat:yyyy/mm/dd
数字:vnd.ms-excel.numberformat:#,##0.00
货币:vnd.ms-excel.numberformat:¥#,##0.00
百分比:vnd.ms-excel.numberformat: #0.00%