js-xlsx插件简单教程

js-xlsx是一款用于excel文件处理的脚本

github地址:https://github.com/protobi/js-xlsx/tree/beta

 

由于文档是英文的,为了自己下次能更快上手使用,这篇文档就介绍下它的简单使用

安装

这其实没啥好说的,第二种script标签引入后,是可以直接使用 XLSX 对象的,下面也主要介绍这种引入方式的写法

js-xlsx插件简单教程

 

 

 

 

创建workbook对象

 

通过input file元素的onchange事件读取excel文件的数据,在图片注释位置处进行操作

js-xlsx插件简单教程

 

 

 

workbook对象

js-xlsx插件简单教程

 

 

 SheetNames存放表名,Sheets存放表数据

workbook.SheetNames.forEach(item => {
    console.log(workbook.Sheets[item])
})

 

t 类型,v 值, f 公式,还有其他的请自行查阅文档 

 

 

 

 js-xlsx插件简单教程

 

 

 

内置函数

sheet-to-json 生成一个数组对象

js-xlsx插件简单教程

 

js-xlsx插件简单教程

 

 显然是把第一行的标题作为了属性名

 

下载excel文件

因为浏览器无法对本地文件进行修改,所以对读取的excel做出修改后,需要重新下载修改后的文件,这里通过纯js方式来实现下载

// 生成二进制文件编码
var wopts = { bookType:'xlsx', bookSST:false, type:'binary' };
var wbout = XLSX.write(workbook,wopts);
function s2ab(s) {
  var buf = new ArrayBuffer(s.length);
  var view = new Uint8Array(buf);
for (var i=0; i!=s.length; ++i) view[i] = s.charCodeAt(i) & 0xFF;
return buf;
}
// 创建a标签用于下载
var eleLink = document.createElement('a');
eleLink.download = 'excel.xlsx';
eleLink.style.display = 'none'; // 字符内容转变成blob对象
var blob = new Blob([s2ab(wbout)]); eleLink.href = URL.createObjectURL(blob); // 触发点击 document.body.appendChild(eleLink);
eleLink.click();
// 然后移除 document.body.removeChild(eleLink);

 

上一篇:无法在C#中卸载单个程序集的原因是什么


下一篇:Excel表格下载模板(带下拉框选项)