/ / ako sa vyhnúť veľkým číslam z konverzie na exponenciálne v nodejs excel súbor read - node.js, excel, npm, xlsx

ako sa vyhnúť veľkým číslam z konverzie na Exponential v nodejs excel súbor čítať - node.js, excel, npm, xlsx

Chcem čítať súbor excel, ktorý má telefónne čísla uložené ako čísla, ale keď som čítal súbor pomocou SheetJS / js-xlsx (npm install xlsx), všetky veľké telefónne čísla sú konvertované na reťazce ako

9.19972E+11

919971692474  --> 9.19972E+11

Môj kód je

var workbook = XLSX.readFile(req.files.fileName.path);
var sheet_name_list = workbook.SheetNames;
var csvFile = XLSX.utils.sheet_to_csv(workbook.Sheets[sheet_name_list[0]]);
console.log(csvFile2);

výstup konzoly je

customer_phone,product_name
9.19972E+13,"Red Belly Shoes,"

Existuje nejaký spôsob, ako sa takejto konverzii vyhnúť?

odpovede:

5 pre odpoveď č. 1

Číslo 919971692474 sa zvyčajne zobrazuje ako9.19972E + 11 v programe Excel. Ak chcete, aby sa zobrazilo celé číslo, musíte nastaviť formát čísla na hodnotu 0 (pravým tlačidlom myši, formátom bunky, výberom vlastného typu "0"). A keď to urobíte, zobrazí sa celé číslo. Ak nemáte nastavený formát vo formáte Excel, modul xlsx používa formát "Všeobecné" a tento číselný formát zobrazuje telefónne číslo ako exponenciálne.

Ak je súbor nesprávny, môžete formát CSV prepísať vymazaním w kľúč a pridanie a z ktorý zodpovedá požadovanému formátu čísla. Napríklad na zmenu bunky A2:

var sheet = workbook.Sheets[workbook.SheetNames[0]];
delete sheet.A2.w;
sheet.A2.z = "0";

Ak to chcete urobiť pre všetky bunky s číslami, len slučka:

Object.keys(sheet).forEach(function(s) {
if(sheet[s].w) {
delete sheet[s].w;
sheet[s].z = "0";
}
});