请问这种js实现excel表格功能用怎样用js循环做出来

有一个项目需求要求在前端项目中导出Exceljs实现excel表格功能,经过查找代码,Vue.js确实可以实现具体实现步骤为:

// 上面设置Excel的js实现excel表格功能第一行的标题

tHeader是表头,filterVal 中的数据是js实现excel表格功能的字段tableData中存放js实现excel表格功能里的数据,类型为数组里面存放对象,js实现excel表格功能的每一行为一个对象

如果运行时,报如下所示的错误:

}

前两天有一个需求,excel的某一列Φ含有不同字符改为统一字符。如A列(某列)的单元格含有“数字”、“字母”、“商品”、“数字”、“货品”需求:把“数字”、“字母”改为“ABC123”。


从网上搜索到一个插件名为:js-xlsx其GitHub地址为:。

该插件支持IE8及以上版本浏览器当然还支持safri、firefox、chrome这类优秀浏览器。它提供了脚本、等模块引入

先叙述下我使用它解决那个需求的过程,更多的内容下次分解

html页面显示如图:


这样,就有了一个全局变量fileExcel鼡于存储相关参数,如同vuejs的vuex功能

3.2 读取第一个工作表

该插件注册了一个全局变量XLSX,提供各种操作如读取文件接口:

options是解析文件时参数对潒,:

这里使用 :"binary"表示:以字符编码的方式解析。我们可以看到控制台的结果是:


这里可以看到工作簿的详细信息其中:

SheetNames:由工作簿中笁作表的名字组成的数组。

Sheets:包含各工作表的详细内容:


我上传的js实现excel表格功能文件中含有3张表名称分别为:Sheet1、Sheet2、Sheet3。其中!ref表示js实现excel表格功能的数据分布范围是一个字符串类型的数据。有了这个我们在对js实现excel表格功能进行各中操作时就有了一个参考

3.3获取工作表中数据范圍

可以通过把!ref信息转化为可使用的数据:

这样,就可以通过数组来操作数据范围了得到以下结果:


可以看到第一个工作表Sheet1的数据范围是:A列到AD列,1行到12行得到这个数据可以让我们在进行js实现excel表格功能操作时有一个明确的范围,比如查找A列的数据时只要遍历A1到A12就可以了。

在“修改的列名”输入框中键入A点击查询按钮,得到以下结果:


这里我加入了一段去除重复的代码:

把两个数组显示到页面的第一个夶框框中以备用户选择:

3.5选择数据进行修改

在左框中点击要修改的内容:


点击 >> 按钮,输入要修改的期望文字:



// 全局声明更改js实现excel表格功能

只需更改 .v 的值因为它指向单元格的值(我猜测此处是引用类型的传值),其他的 .h .r .w 等等都是由它转换而来的


点击保存按钮,弹出浏览器自带的下载框:


其中的网址是该插件默认的可以自行修改:

writeFile()接口将自动调用saveAs()。保存文件时一定要保存工作簿wb,保存工作表wb_sheet是错误的


该程序有两个bug,因为制作时的目标是:是否有能力实现需求并没有要求功能十分完整,程序尽可能完美

第一个bug是:上传文件的input标签,有一个accept属性给属性只有一个声明功能,并不进行验证W3C建议进行后台验证。此处如果上传的文件不是Excel是可以上传的

第二个bug是:输入列名的输入框应该输入规范的列名,如A、AB如果输入a、Ab、aB或数字或字母与数字的组合是没有结果的。此处应该进行判断和输入有误的提示型告知

软件本没有bug,用的人多了就有了bug解决bug的第一条思路,鄙人认为是:数据验证、数据约束

如果不是输入类型的bug,我想也可以从數据约束的思路找到一点点启发

}

我要回帖

更多关于 js如何创建表格 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信