javascript - SheetJS,修复记录 : Worksheet properties from/xl/workbook. xml 部分(工作簿)

标签 javascript excel ecmascript-6 spreadsheet sheetjs

我使用SheetJS将数据导出到excel,看起来就像excel本身修复数据一样。数据下载良好,但是收到此警告可以吗? 我从 UI 中获取了 file.xlsx,当我通过 Excel 打开它时,我收到了一些由 Excel 本身生成的警告。 screenshot_5 screenshot_4

代码:

const download = (url, name) => {
    let a = document.createElement('a')
    a.href = url
    a.download = name
    a.click()

    window.URL.revokeObjectURL(url)
}

function Workbook() {
    if (!(this instanceof Workbook))
        return new Workbook()

    this.SheetNames = []

    this.Sheets = {}
}

function s2ab(s) {
    const buf = new ArrayBuffer(s.length)

    const view = new Uint8Array(buf)

    for (let i=0; i !== s.length; ++i)
        view[i] = s.charCodeAt(i) & 0xFF

    return view
}

export default data => {
    import('xlsx').then(XLSX => {
        const wb = new Workbook()
        const ws = XLSX.utils.json_to_sheet(data)

        wb.SheetNames.push('s')
        wb.Sheets[''] = ws

        const wbout = XLSX.write(wb, {bookType:'xlsx', bookSST:true, type: 'binary'})

        let url = window.URL.createObjectURL(new Blob([s2ab(wbout)], {type:'application/octet-stream'}))

        download(url, 'import.xlsx')
    })
}

最佳答案

工作表名称长度不应超过 31。如果工作表名称长度超过 31,Microsoft Excel 会出错。

关于javascript - SheetJS,修复记录 : Worksheet properties from/xl/workbook. xml 部分(工作簿),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48643025/

相关文章:

javascript - 混淆嵌套测试套件和规范的执行顺序

javascript - 如何在Vuejs中实现throttle方法?

excel - Groovy/Grails文档下载

javascript - Redux 形式奇怪的箭头函数语法

ReactJS - props 还是 propTypes?

javascript - 导出函数范围困惑es6

javascript - 显示来自对象的消息

javascript - Angular 元素无法正确处理 "display: block"

c# - 从 Excel 插入数据集时数据在 255 个字符后被截断,但填充 DataTable 时没有问题

VBA - 运行时错误 1004 'Application Defined or Object Defined Error'