最近做微信小程序相关项目需要将数据导出为excel形式,在网上查了许多资料来实现这个功能,以下是我使用的方法,特此记录一下,以便之后使用。
解决方法:使用sheetJS代码插件实现
github地址:https://github.com/SheetJS/sheetjs
下载地址:https://cdn.sheetjs.com/
代码如下,具体使用根据情况操作:文章来源地址https://www.toymoban.com/news/detail-798699.html
// 数据
let data=[
{
id:1,
name:'a'
},{
id:2,
name:'b'
},{
id:3,
name:'c'
}]
let sheet = []
// 表头
let title = ['序号', '姓名']
sheet.push(title)
// 数据
data.forEach(item => {
let rowcontent = []
rowcontent.push(item.id)
rowcontent.push(item.name)
sheet.push(rowcontent)
})
// XLSX插件使用
var ws = XLSX.utils.aoa_to_sheet(sheet);
var wb = XLSX.utils.book_new();
XLSX.utils.book_append_sheet(wb, ws, "导出信息");
var fileData = XLSX.write(wb, {
bookType: "xlsx",
type: 'base64'
});
// 保存的本地地址
console.log(wx.env.USER_DATA_PATH)
let filePath = `${wx.env.USER_DATA_PATH}/导出信息.xlsx`
// 写文件
const fs = wx.getFileSystemManager()
fs.writeFile({
filePath: filePath,
data: fileData,
encoding: 'base64',
success(res) {
console.log(res)
const sysInfo = wx.getSystemInfoSync()
// 导出
if (sysInfo.platform.toLowerCase().indexOf('windows') >= 0) {
// 电脑PC端导出
wx.saveFileToDisk({
filePath: filePath,
success(res) {
console.log(res)
},
fail(res) {
console.error(res)
util.tips("导出失败")
}
})
} else {
// 手机端导出
// 打开文档
wx.openDocument({
filePath: filePath,
success: function (res) {
console.log('打开文档成功')
},
fail: console.error
})
}
},
fail(res) {
console.error(res)
if (res.errMsg.indexOf('locked')) {
wx.showModal({
title: '提示',
content: '文档已打开,请先关闭',
})
}
}
})
文章来源:https://www.toymoban.com/news/detail-798699.html
到了这里,关于前端实现微信小程序JSON数据导出Excel表的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!