Экспорт данных из таблицы в Excel, как остановить Excel от автоматического преобразования значения? - PullRequest
1 голос
/ 20 июня 2019

В настоящее время я работаю над функцией экспорта проекта.(Я недавно закончил студент)

Я успешно выполнил эту функцию.проблема, с которой я сталкиваюсь сейчас, заключается в том, что 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 голосов
/ 20 июня 2019

Я не знаю, как это сделать в JavaScript.Если вы переместите свою функцию экспорта в c #, это можно сделать, установив стиль ячейки как

sheet.Cells[i].Attributes.Add("style", "textmode");
0 голосов
/ 20 июня 2019

Число в этом формате "7.77836E + 15" называется научной нотацией, оно представляет 7.77836 × 10 15 .

Этот поток StackExchange сообщает, что если вы щелкнете правой кнопкой мыши по ячейкам, нажмете «Форматировать ячейки» и выберете «Число», вы можете запретить Excel использовать научную запись.

Похоже, в вашем коде много чего мы не видим, но я подозреваю, что вы сможете отформатировать ячейки при создании документа.

Возможно, вы захотите попробовать это.

...