xgqfrms / learning

learning : A collection of all kinds of resources, videos, pdf, blogs, codes... 📚 + 💻 + ❤
https://learning.xgqfrms.xyz
MIT License
16 stars 12 forks source link

export-excel.js #81

Open xgqfrms opened 4 years ago

xgqfrms commented 4 years ago

export-excel.js


// export-excel.js

"use strict";
/**
 * @description export table to excel with HTML5 Bolb!
 * @author xgqfrms 2018.02.05
 * @param {String} type
 * @param {String} uid
 * @param {String} title
 * @param {Boolean} debug
 */
const exportExcel = (
    uid = `data-table`,
    title = `excel-title`,
    type = `xlsx`,
    debug = false
) => {
    if (debug) {
        console.log(`uid= `, uid);
        console.log(`type = `, type);
        console.log(`title = `, title);
    }
    // fixed bug: error =  Error: Sheet names cannot exceed 31 chars
    const short_mock_title = `xgqfrms`;
    let result = ``;
    try {
        let elt = document.querySelector(uid),
            wb = XLSX.utils.table_to_book(
                elt,
                {
                    // sheet: "Sheet JS",// excel sheet name
                    // sheet: title,
                    // fixed bug: error =  Error: Sheet names cannot exceed 31 chars
                    sheet: short_mock_title,
                }
            );
        if (debug) {
            console.log(`document.querySelector(uid) = `, elt);
        }
        result = XLSX.writeFile(
            wb,
            `${title}.${type}`,
            // `${short_mock_title}.${type}`,
        );
        // console.log(`result =`, result);
        // bolb 
        // bolb to url
        // true title name
        return result;
    } catch (error) {
        console.log(`export error = `, error);
    }
};

export {exportExcel};

export default exportExcel;