需要用到xlsx.core.min.js的js库,以实现导出excel。
下载链接:
SheetJS: https://github.com/SheetJS/sheetjs
找到dist目录下,xlsx.core.min.js文件,将它复制到你项目的/common/js/目录下。
1、导入js库;
import * as XLSX from '@/common/js/xlsx.core.min.js';
export default {
data() {
return {
list: [],
}
},
}
2、编辑导出数据。
let sheet = [] //最终需要的数据
let title = ["柜号", "合同号"] //表头
sheet.push(title) //导入表头
//循环表单数据
this.list.forEach(item => {
let rowcontent = []
rowcontent.push(item.containerNo)
rowcontent.push(item.contractNo)
sheet.push(rowcontent) //添加一行表单
})
3、利用js库导出excel。文章来源:https://www.toymoban.com/news/detail-842054.html
const worksheet = XLSX.utils.aoa_to_sheet(sheet);
const workbook = XLSX.utils.book_new();
XLSX.utils.book_append_sheet(workbook, worksheet, "船期");
const fileData = XLSX.write(workbook, {
bookType: "xlsx",
type: 'base64'
});
var fileName = `船期${new Date().getTime()}.xlsx`
const newFilePath = uni.env.USER_DATA_PATH + '/' + fileName // 文件名对应表名,多个表的情况可以自己测试
const fs = uni.getFileSystemManager()
fs.writeFile({
filePath: newFilePath,
data: fileData,
encoding: 'base64',
success: res => {
const sysInfo = uni.getSystemInfoSync()
if (sysInfo.platform.toLowerCase().indexOf('windows') >= 0) {
uni.saveFileToDisk({
filePath: newFilePath,
success: console.log,
fail: console.error
})
} else {
uni.openDocument({
filePath: newFilePath,
showMenu: true, // 需要添加showMenu允许用户导出
success: console.log,
fail: console.error
})
}
},
fail: e => {
if (e.errMsg.indexOf('locked')) {
wx.showModal({
title: '提示',
content: '文档已打开,请先关闭',
})
}
})
这样就可以了。文章来源地址https://www.toymoban.com/news/detail-842054.html
到了这里,关于uniapp 微信小程序导出excel功能实现的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!