使用js-table2excel导出excel文件中数字存在科学计数法的解决方法

797 阅读1分钟

问题:直接把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文件

image.png

image.png

随后在导出表格中修改样式

// 导出表格
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%