xgqfrms™, xgqfrms® : xgqfrms's offical website of cnblogs! xgqfrms™, xgqfrms® : xgqfrms's offical website of GitHub!

SheetJS Error All In One

SheetJS Error All In One

Error: Sheet names cannot exceed 31 chars

title + version

https://github.com/SheetJS/js-xlsx/issues/870

https://github.com/SheetJS/js-xlsx/commit/aff7b952720a466bb739ffbbe1cb5d1f9635dcb5

solution

https://support.office.com/en-us/article/Rename-a-worksheet-3F1F7148-EE83-404D-8EF0-9FF99FBAD1F9

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;


old version

"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}`,
            // true title name
        );
        return result;
    } catch (error) {
        console.log(`error = `, error);
    }
};

export {exportExcel};

export default exportExcel;


HTML5 download 执行条件

https://developer.mozilla.org/en-US/docs/Web/HTML/Element/a#download

image

download normal file

https://stackoverflow.com/questions/3102226/how-to-set-name-of-file-downloaded-from-browser/48064008#48064008

download blob file

https://stackoverflow.com/questions/71686536/how-to-set-the-download-file-extension-for-blob-data/71895888#71895888

https://github.com/xgqfrms/HTML5/issues/11

download pdf & rename

seeing comments


download image & rename

seeing comments


refs



©xgqfrms 2012-2020

www.cnblogs.com/xgqfrms 发布文章使用:只允许注册用户才可以访问!

原创文章,版权所有©️xgqfrms, 禁止转载 🈲️,侵权必究⚠️!


posted @ 2018-11-07 09:16  xgqfrms  阅读(2134)  评论(7编辑  收藏  举报