我目前正在处理一个项目的导出函数。(我是刚毕业的学生(
我已经成功地完成了这个功能。 我现在面临的问题是 excel 会自动将我的初始值转换(或格式化?我可以知道有什么解决方案可以停止从excel执行自动转换为值吗?
场景:原始编号7778362019198430,导出后显示 7.77836E+15
这是我的导出函数的代码
function fnExcelReport(tableID) {
var downloadLink;
var dataType = 'application/vnd.ms-excel';
var tableSelect = document.getElementById(tableID);
var tableHTML = tableSelect.outerHTML.replace(/ /g, '%20');
// Specify file name
var d = new Date();
var todaysDate = d.getFullYear() + '-' + d.getMonth() + '-' +
d.getDate();
filename = 'CashCard_' + todaysDate + '.xls';
// Create download link element
downloadLink = document.createElement("a");
document.body.appendChild(downloadLink);
if(navigator.msSaveOrOpenBlob){
var blob = new Blob(['ufeff', tableHTML], {
type: dataType
});
navigator.msSaveOrOpenBlob( blob, filename);
}else{
// Create a link to the file
downloadLink.href = 'data:' + dataType + ', ' + tableHTML;
// Setting the file name
downloadLink.download = filename;
//triggering the function
downloadLink.click();
}
}
预期输出应与原始值7778362019198430相同,但excel执行自动转换,导出后的输出将自动转换为7.77836E + 15。
有什么办法可以阻止它吗?非常感谢。
如何在javascript中做到这一点。如果将导出功能移动到 c#,则可以通过设置单元格样式来完成
此操作sheet.Cells[i].Attributes.Add("style", "textmode");
这种格式的数字"7.77836E+15"称为科学记数法,它表示 7.77836 × 1015。
这个 StackExchange 线程说,如果您右键单击单元格并单击"设置单元格格式"并选择"数字",您可以阻止 Excel 使用科学记数法。
看起来您的代码中有很多我们看不到的内容,但我怀疑您在创建文档时将能够格式化单元格。
你可能想试试这个。