我在做
XLSX.utils.table_to_book(document.getElementById(table), { sheet: "Sheet JS", raw: false });
表格作为HTML表格。但是,我的其中一列包含USD($ 4.56),但在excel中被读取为General类型而不是货币。如何使用XLSX.utils.table_to_book并将某些列保留为货币?
答案 0 :(得分: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>