将数据从表导出到excel,如何阻止excel自动转换值?

时间:2019-06-20 04:50:35

标签: javascript c# jquery html export-to-excel

我目前正在从事项目的导出功能。 (我是应届毕业生)

我已经成功完成了该功能。我现在面临的问题是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。

有什么办法阻止它吗?非常感谢。

2 个答案:

答案 0 :(得分:0)

这种格式为“ 7.77836E + 15”的数字称为科学计数法,表示7.77836×10 15

This StackExchange线程说,如果右键单击单元格并单击“设置单元格格式”,然后选择“数字”,则可以阻止Excel使用科学计数法。

看起来您的代码中有很多我们看不到,但是我怀疑您在创建文档时可以格式化单元格。

您可能想尝试一下。

答案 1 :(得分:0)

我不知道如何在javascript中执行此操作。如果将导出功能移至c#,则可以通过将单元格样式设置为

来完成
sheet.Cells[i].Attributes.Add("style", "textmode");
相关问题