需要将页面上的表格内容导出成excel格式。

使用了FileSaver、js-xlsx的前端插件。

files: [

vendor_path('file-saver/FileSaver.min.js'),

vendor_path('js-xlsx/dist/xlsx.core.min.js'),

]

FileSaver、js-xlsx的github,支持的版本类型,和使用方法。

js-xlsx:

datenum = (v, date1904) ->

if date1904

v += 1462

epoch = Date.parse(v)

return (epoch - new Date(Date.UTC(1899, 11, 30))) / (24 * 60 * 60 * 1000)

sheetFromArrayOfArrays = (data) ->

ws =

# 设置每一列的宽度(12个字符)

'!cols': ({wch: 12} for i in _.range(data[0].length))

range =

s:

c: 10000000

r: 10000000

e:

c: 0

r: 0

R = 0

while R != data.length

C = 0

while C != data[R].length

if range.s.r > R

range.s.r = R

if range.s.c > C

range.s.c = C

if range.e.r < R

range.e.r = R

if range.e.c < C

range.e.c = C

cell = v: data[R][C]

if cell.v == null

++C

continue

cell_ref = XLSX.utils.encode_cell(

c: C

r: R)

if typeof cell.v == 'number'

cell.t = 'n'

else if typeof cell.v == 'boolean'

cell.t = 'b'

else if cell.v instanceof Date

cell.t = 'n'

cell.z = XLSX.SSF._table[14]

cell.v = datenum(cell.v)

else

cell.t = 's'

ws[cell_ref] = cell

++C

++R

if range.s.c < 10000000

ws['!ref'] = XLSX.utils.encode_range(range)

return ws

s2ab = (s) ->

buf = new ArrayBuffer(s.length)

view = new Uint8Array(buf)

for i in _.range(s.length)

view[i] = s.charCodeAt(i) & 0xFF

return buf

FileSaver:

filename = "ge.xlsx"

wb =

SheetNames: []

Sheets: {}

ws = sheetFromArrayOfArrays(data)

sheet_name = "ge"

wb.SheetNames.push sheet_name

wb.Sheets[sheet_name] = ws

if wb.SheetNames.length == 0

return showErr()

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

saveAs(new Blob([s2ab(wbout)], {type: "application/octet-stream"}), filename)

js导出的xlsx无法打开_使用FileSaver、js-xlsx实现excel导出相关推荐

  1. js下载文件,javascript下载文件,FileSaver.js,页面元素保存成文件

    js下载文件,javascript下载文件,FileSaver.js,页面元素保存成文件 ================================ ©Copyright 蕃薯耀 2020-07 ...

  2. js如何实现扫描身份证识别_通过node.js来调取baidu-aip-SDK实现身份证识别的功能...

    这篇文章主要介绍了关于通过node.js来调取baidu-aip-SDK实现身份证识别的功能,有着一定的参考价值,现在分享给大家,有需要的朋友可以参考一下 最近项目中客户需要实现身份证识别功能,合理计 ...

  3. 注册登录页面代码用js判断是否填入信息_(实战)Node.js 实现抢票小工具amp;短信通知提醒...

    作者:西岚 https://juejin.im/post/5dadd0236fb9a04de04d968e 写在前言 要知道在深圳上班是非常痛苦的事情,特别是我上班的科兴科技园这一块,去的人非常多,每 ...

  4. double 导出txt保留两位_使用Jade“精修”XRD图谱并导出数据

    写在最前:使用Jade标定XRD是材料科学研究中的基本数据处理操作,这里就不再提及了,还没有掌握的小伙伴们可以自行百度教程,基本上大同小异.本文仅为一家之言,如有错误还望轻拍. 这里推荐一个Jade ...

  5. npoi xlsx 文件损坏_解决右键新建xlsx文件错误

    问题发现 近日在使用Windows文件资源管理器,右键新建 XLSX 工作表 ,打开文件,EXCEL报错 Excel 无法打开文件 "***.xlsx", 因为文件格式或文件扩展名 ...

  6. js获取request中的值_基于node.js的开发框架 — Koa

    一.简介 Koa 基于nodeJs平台的下一代web开发框架,由 Express 幕后的原班人马打造,致力于成为一个更小.更富有表现力.更健壮的 Web 框架.使用 koa 编写 web 应用,通过组 ...

  7. 注册登录页面代码用js判断是否填入信息_(实战)Node.js 实现抢票小工具amp;amp;短信通知提醒...

    作者:西岚 本文经作者 @西岚 授权分享,文末点击阅读原文可跳转原文查看. 写在前言 要知道在深圳上班是非常痛苦的事情,特别是我上班的科兴科技园这一块,去的人非常多,每天上班跟春运一样,如果我能换到以 ...

  8. js清空文本框的值_一个Vue.js实例控制字变大变小,含样式操作,flex布局。「603」...

    这是一个用vue.js对css操作完成的实例. 当然用了flex简单布局. 一.先创建一个html文件,记得添加vue库文件. 二.创建一盒容器vmdiv,用vue绑定它,测试vue绑定后的插入值te ...

  9. js函数提升和变量提升_关于在js中提升的真相

    js函数提升和变量提升 Earlier this week I was preparing to give a tech talk about some foundational JavaScript ...

最新文章

  1. android 加载列表占位,使用Glide从URL加载占位符以在加载GIF时显示(Android)
  2. 学python可以做什么知乎-学完Python后能做什么?
  3. nothing comes free
  4. DIscuz论坛上传附件2M限制修改
  5. linux 64位兼容32位,linux的64位操作系统对32位程序的兼容-全面分析
  6. 【echart数组数据】echarts两条或两条以上x轴不同的线合并x轴 含有不连续数据
  7. AttributeError: Can only use .str accessor with string values, which use np.object_ dtype in pandas
  8. 7-3 最小生成树-kruskal (10 分)(思路+详解+并查集详解+段错误超时解决)宝 Come
  9. 爬虫那些事儿-- 简介
  10. 喂,你经历过两三年前的前端开发吗?
  11. fileziller 恢复 站点管理器 内的ftp帐号方法
  12. 计算机c盘小了,电脑的C盘内存太小,怎么办?
  13. 教师资格证面试试讲需要注意什么?
  14. 单片机c语言延时30s程序,单片机C语言的延时程序
  15. 在线生成安卓签名证书
  16. Microsoft Visio 文本框上标或下标
  17. 基于Android的高德地图的定位和运动轨迹记录的功能
  18. 【前端知识之webpack】Loader和Plugin都是什么,有什么区别
  19. 关于对信号归一化后的频谱“消失”问题
  20. Windows11 安装教程(Ultraiso-制作启动盘)

热门文章

  1. Java应用性能优化!宁波java培训班地址
  2. 三自由度求解正逆运动学
  3. Python   pip安装selenium安装不了报错原因
  4. 达梦数据库导入csv文件
  5. html5文本与段落简介,认识HTML标题和段落元素
  6. Java 通过POI 操作excel表格:读取、写入
  7. OpenGL之创建窗口
  8. 电脑dll文件缺失如何修复;DirectX修复工具,轻松搞定
  9. OSI网络七层模型和TCP/IP模型
  10. matlab求分段函数的值.,如何用MATLAB求分段函数的最小值和最大值?