我创建了一个报表,其中包含一个表格,其中包含5/5的数据(表示5个中的5个)。然后使用Javascript将表导出到Excel后,它显示为5月5日。
实施例
使用Javascript导出到Excel后
我需要它是5/5而不是5月5日
这是PHP代码
echo $balancequota."/".$data['quota'];
这是jQuery
<script>
var tableToExcel = (function() {
var uri = 'data:application/vnd.ms-excel;base64,',
template = '<html xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:x="urn:schemas-microsoft-com:office:excel" xmlns="http://www.w3.org/TR/REC-html40"><head><!--[if gte mso 9]><xml><x:ExcelWorkbook><x:ExcelWorksheets><x:ExcelWorksheet><x:Name>{worksheet}</x:Name><x:WorksheetOptions><x:DisplayGridlines/></x:WorksheetOptions></x:ExcelWorksheet></x:ExcelWorksheets></x:ExcelWorkbook></xml><![endif]--></head><body><table>{table}</table></body></html>',
base64 = function(s) {
return window.btoa(unescape(encodeURIComponent(s)))
},
format = function(s, c) {
return s.replace(/{(\w+)}/g, function(m, p) {
return c[p];
})
}
return function(table, name) {
if (!table.nodeType) table = document.getElementById(table)
var ctx = {
worksheet: name || 'Worksheet',
table: table.innerHTML
}
var dt = new Date();
var year = dt.getFullYear();
var postfix = year;
document.getElementById("btnExport").href = uri + base64(format(template, ctx))
document.getElementById("btnExport").download = 'report_' + postfix + '.xls';
}
})()
</script>
那么,有没有办法避免Microsoft Excel自动将5/5更改为5月5日?
答案 0 :(得分:0)
添加撇号。然后Excel不会转换值。
'5/5
答案 1 :(得分:0)
使用CDATA
来避免您的javascript解析5/5
请参阅此处:When is a CDATA section necessary within a script tag?