html页面刷新vue表格,Vue2.0实现将页面中表格数据导出excel的实例

这篇文章主要为大家详细介绍了Vue2.0实现将页面中表格数据导出excel的实例,具有一定的参考价值,可以用来参考一下。

感兴趣的小伙伴,下面一起跟随512笔记的小编两巴掌来看看吧!

这两天学习了Vue.js 感觉知识点挺多的,所以,今天添加一点小笔记。

项目中将后台返回的数据v-for到表格中,然后需要将这个表格导出为EXCEL

只说怎么做。

一、需要安装三个依赖:

代码如下:

npm install -S file-saver xlsx

npm install -D script-loader

二、项目中新建一个文件夹:(vendor---名字任取)

里面放置两个文件Blob.js和 Export2Excel.js。

Blob.js和 Export2Excel.js文件下载地址:Export2Exce_512pic.rar

三、在.vue文件中

写这两个方法:其中list是表格的内容

代码如下:

export2Excel() {

require.ensure([], () => {

const { export_json_to_excel } = require('../../vendor/Export2Excel');

const tHeader = ['序号', 'IMSI', 'MSISDN', '证件号码', '姓名'];

const filterVal = ['ID', 'imsi', 'msisdn', 'address', 'name'];

const list = this.tableData;

const data = this.formatJson(filterVal, list);

export_json_to_excel(tHeader, data, '列表excel');

})

},

formatJson(filterVal, jsonData) {

return jsonData.map(v => filterVal.map(j => v[j]))

}

四、按钮导出调用export2Excel方法

注:如果webpack报解析错误:

在build----webpack.base.conf.js中resolve的alias加入 'vendor': path.resolve(__dirname, '../src/vendor'),

即可解决

另:alias是配置别名

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持512笔记。

注:关于Vue2.0实现将页面中表格数据导出excel的实例的内容就先介绍到这里,更多相关文章的可以留意512笔记的其他信息。

关键词:vue.js

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
非常抱歉,我之前理解成了一个npm相关的问题,现在我明白您的问题了。以下是一个Vue 2的可编辑表格示例,包括导入和导出表格数据,并保留表格样式。 HTML模板代码: ``` <template> <div> <button @click="exportTable">导出表格</button> <input type="file" ref="file" style="display:none" @change="importTable" /> <button @click="() => { this.$refs.file.click() }">导入表格</button> <table> <thead> <tr> <th>姓名</th> <th>年龄</th> <th>性别</th> </tr> </thead> <tbody> <tr v-for="(item, index) in tableData" :key="index"> <td :contenteditable="item.editable" @input="editTableData(index, 'name', $event.target.innerText)">{{ item.name }}</td> <td :contenteditable="item.editable" @input="editTableData(index, 'age', $event.target.innerText)">{{ item.age }}</td> <td :contenteditable="item.editable" @input="editTableData(index, 'gender', $event.target.innerText)">{{ item.gender }}</td> <td> <button @click="toggleEdit(index)">{{ item.editable ? '保存' : '编辑' }}</button> </td> </tr> </tbody> </table> </div> </template> ``` JS代码: ``` <script> export default { data() { return { tableData: [ { name: '张三', age: 20, gender: '男', editable: false }, { name: '李四', age: 22, gender: '女', editable: false }, { name: '王五', age: 25, gender: '男', editable: false }, ] } }, methods: { toggleEdit(index) { this.tableData[index].editable = !this.tableData[index].editable }, editTableData(index, key, value) { this.tableData[index][key] = value }, exportTable() { const table = document.querySelector('table') const tableHtml = table.outerHTML const exportHref = 'data:application/vnd.ms-excel;base64,' + window.btoa(unescape(encodeURIComponent(tableHtml))) const link = document.createElement('a') link.href = exportHref link.download = 'table.xls' link.click() }, importTable() { const file = this.$refs.file.files[0] const reader = new FileReader() reader.onload = (event) => { const tableHtml = event.target.result const parser = new DOMParser() const table = parser.parseFromString(tableHtml, 'text/html').querySelector('table') const tableData = [] table.querySelectorAll('tr').forEach((tr, index) => { if (index > 0) { const tds = tr.querySelectorAll('td') tableData.push({ name: tds[0].innerText, age: tds[1].innerText, gender: tds[2].innerText, editable: false }) } }) this.tableData = tableData } reader.readAsText(file) } } } </script> ``` 这个示例包含了一个table元素,其包含了表头和表数据表格数据是一个数组,每行数据都是一个对象。在表格,我们使用了v-for指令来遍历这个数组,并渲染每行数据。每行数据都包含了一个可编辑的td元素,并且有一个编辑和保存按钮,用于控制td元素是否可编辑。 导出表格数据的方法是将table元素的outerHTML转成base64编码的字符串,然后创建一个a标签,并设置href和download属性,最后调用click方法触发下载。 导入表格数据的方法是通过一个input元素来获取用户选择的文件,然后使用FileReader对象将文件读取为文本字符串。接下来,我们使用DOMParser对象将文本字符串转换成HTML文档对象,并从获取table元素和其数据。最后,我们将表格数据更新到Vue实例的data,然后表格会自动更新渲染。 希望这个示例能够帮助到您。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值