使用 SheetJS 產生 xlsx 檔案 示範

基本使用示範

npm 安裝

安裝套件:
    
npm rm --save xlsx
npm i --save https://cdn.sheetjs.com/xlsx-0.20.3/xlsx-0.20.3.tgz
    

基本使用範例:
    
<script type="module">
    import * as XLSX from 'xlsx';

    // 範例資料,將被寫入 Excel 檔案
    const data = [
        ['姓名', '年齡', '職業'],
        ['小明', 26, '工程師'],
        ['小美', 30, '設計師'],
        ['阿強', 35, '專案經理'],
    ];

    // 將資料轉換為工作表
    const worksheet = XLSX.utils.aoa_to_sheet(data);

    // 建立工作表並加入資料
    const workbook = XLSX.utils.book_new();
    XLSX.utils.book_append_sheet(workbook, worksheet, '工作表1');

    // 將工作簿匯出為 .xlsx 檔案
    const fileName = '人員資料.xlsx';
    XLSX.writeFile(workbook, fileName);
</script>
    

CDN

    
<script lang="javascript" src="https://cdn.sheetjs.com/xlsx-0.20.3/package/dist/xlsx.full.min.js"></script>
    

基本使用範例:
    
<script>
    // 範例資料,將被寫入 Excel 檔案
    const data = [
        ['姓名', '年齡', '職業'],
        ['小明', 26, '工程師'],
        ['小美', 30, '設計師'],
        ['阿強', 35, '專案經理'],
    ];

    // 將資料轉換為工作表
    const worksheet = XLSX.utils.aoa_to_sheet(data);

    // 建立工作表並加入資料
    const workbook = XLSX.utils.book_new();
    XLSX.utils.book_append_sheet(workbook, worksheet, '工作表1');

    // 將工作簿匯出為 .xlsx 檔案
    const fileName = '人員資料.xlsx';
    XLSX.writeFile(workbook, fileName);
</script>
    

其他範例

    
    // 建立活頁簿
    const workbook = XLSX.utils.book_new();

    // 使用空陣列建立工作表
    const worksheet = XLSX.utils.aoa_to_sheet([]);

    // A1 儲存格設定為 'Hello World'
    worksheet['A1'] = { t: 's', v: 'Hello World' }; // t: type, v: value, s: style
    // A2 儲存格設定為 123
    worksheet['A2'] = { t: 'n', v: 123 }; // t: type, v: value, n: number

    // 合併 A1:B1 儲存格
    worksheet['!merges'] = [{ s: { r: 0, c: 0 }, e: { r: 0, c: 1 }}]; // s: start, e: end, r: row, c: column

    // 設定工作表範圍
    worksheet['!ref'] = 'A1:B2'; // ref: reference

    XLSX.utils.book_append_sheet(workbook, worksheet, 'Sheet1');

    // 將工作簿匯出為 .xlsx 檔案
    const fileName = 'test.xlsx';
    XLSX.writeFile(workbook, fileName);
    



參考資料:
SheetJS - Docs

留言

張貼留言

如果有任何問題、建議、想說的話或文章題目推薦,都歡迎留言或來信: a@ruyut.com