前端 sheetjs 導出 excel 設置百分比格式


概述

前端導出 excel 文件常用的庫是 sheetjs。今天 PM 提了一個需求就是所有的數字都使用數字格式,特別是百分比也使用數字格式。我想了很久終於解決了,記錄下來,供以后開發時參考,相信對其它人也有用。

問題

通過查看 sheetjs的官方文檔,我們可以發現,它支持這幾種導出格式:Boolean、Error、Number、Date、Text、Stub,里面沒有百分比格式,怎么辦呢?

方法就是使用格式化為 0.00% 的數字格式,其中后面2個0是自定義2個小數位,可以多加或者少加。

源碼

Show me the code:

const workbook = XLSX.utils.book_new();
const sheet = XLSX.utils.json_to_sheet(data);
Object.keys(sheet).forEach((item) => {
    const cell = sheet[item];
    const value = cell.v;
    if (cell.t === 's' && value.indexOf('%') > -1) {
        cell.z = '0.00%';
        cell.t = 'n';
        cell.v = Number(value.substring(0, value.length - 1)) / 100;
    }
});
XLSX.utils.book_append_sheet(workbook, sheet, 'Sheet1');
XLSX.writeFile(workbook, filename);

題外話

  • 這個庫真的很強大,還可以自定義很多其他的東西。
  • 安利一下我自己寫的 excel 導出庫download-excel


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM