0

我在做

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

表格作为 HTML 表格。但是,我的其中一列包含美元(4.56 美元),但在 excel 中被读取为通用类型,而不是货币。我如何使用 XLSX.utils.table_to_book 并将某些列保留为货币?

4

1 回答 1

1

要更改单元格的数字格式,请将单元格的 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>

于 2018-10-31T15:24:05.310 回答