XLSX.utils.table_to_book Валюты как общие - PullRequest
0 голосов
/ 31 октября 2018

я делаю

 XLSX.utils.table_to_book(document.getElementById(table), { sheet: "Sheet JS", raw: false }); 

Таблица в виде таблицы HTML. Тем не менее, один из моих столбцов содержит USD ($ 4,56), но читается как общий тип в Excel, а не как валюта. Как я могу использовать XLSX.utils.table_to_book и сохранить определенные столбцы в качестве валюты?

1 Ответ

0 голосов
/ 31 октября 2018

Чтобы изменить числовой формат ячейки, установите для свойства z ячейки тот формат, который вы хотите использовать. Например:

ws["A2"].z = "$0.00";

Форматированный текст обычно сохраняется в поле w, а не в поле v, но не обновляется автоматически при изменении формата номера. Вы можете сделать это вручную:

delete ws["A2"].w; // delete old formatted text if it exists
XLSX.utils.format_cell(ws["A2"]); // refresh cell

Пример во фрагменте

var tbl = document.getElementById('sheetjs');
var wb = XLSX.utils.table_to_book(tbl);


var ws = wb.Sheets["Sheet1"]; //  get the current sheet
console.log(ws["A2"].v); //  default v value '4.56'

ws["A2"].z = "$0.00"; //  format the cell

delete ws["A2"].w; // delete old formatted text if it exists
XLSX.utils.format_cell(ws["A2"]); // refresh cell

console.log(ws["A2"].w); // new formatted cell '$4.56'
<script src="https://cdnjs.cloudflare.com/ajax/libs/xlsx/0.14.0/xlsx.js"></script>

<table id="sheetjs">
<tr><td>S</td><td>h</td><td>e</td><td>e</td><td>t</td><td>J</td><td>S</td></tr>
<tr><td>$4.56</td><td>2</td><td>3</td><td>4</td><td>5</td><td>6</td><td>7</td></tr>
<tr><td>2</td><td>3</td><td>4</td><td>5</td><td>6</td><td>7</td><td>8</td></tr>
</table>
...