file-saver生成excel表直接上传给后台

木鱼硕 2021-01-06 06:34:58
使用
npm install file-saver --save
bower install file-saver
在浏览器上能够把table生成excel表,但是不能下载,生成后直接传给后台,咋来???????

export2Excel() {
let tables = document.getElementById("out-table");
let table_book = this.$XLSX.utils.table_to_book(tables);
var table_write = this.$XLSX.write(table_book, {
bookType: "xlsx",
bookSST: true,
type: "array"
});
try {
let userAgent = navigator.userAgent;
//兼容ie浏览器
if (userAgent.indexOf('Trident') !== -1 && userAgent.indexOf('Windows') !== -1) {
let blob = new Blob([table_write], {type: 'application/octet-stream'});
console.log(blob);
this.$FileSaver.saveAs(blob, "sheetjs.xlsx");
} else { //兼容谷歌 火狐
let file = new File([table_write], "sheetjs.xlsx", {type: "application/octet-stream"});
console.log(file);
this.$FileSaver.saveAs(file);
}
} catch (e) {
if (typeof console !== "undefined") console.log(e, table_write);
}
return table_write;
},
...全文
8480 点赞 收藏 2
写回复
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
木鱼硕 01-21
谢啦
回复
ubbcou 01-21
这里有个生成json并下载的例子,希望能帮到你~

const DownloadBtn = () => {
  function createDownload() {
    const fileBlob = new Blob([JSON.stringify({
      name: 'hello',
      title: 'world'
    })], {
      type: 'application/json;charset=utf-8',
    });
    
    const url = window.URL.createObjectURL(fileBlob)
    const aLink = document.createElement('a')
    aLink.style.display = 'none'
    aLink.href = url
    aLink.setAttribute('download', 'temp.json')
    document.body.appendChild(aLink)
    aLink.click()
    document.body.removeChild(aLink)
    /** 释放掉blob对象 */
    window.URL.revokeObjectURL(url)
  }
  return <button onClick = {() => createDownload()}> 生成并下载文件 </button>
}

function App() {
  return ( 
    <div className = "App" >
      <DownloadBtn />
    </div>
  )
}
回复
发动态
发帖子
跨浏览器开发
创建于2010-06-28

5004

社区成员

解读Web 标准、分析和讨论实际问题、推动网络标准化发展和跨浏览器开发进程,解决各种兼容性问题。
申请成为版主
社区公告
暂无公告