getExcelTest() {
// 数据
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://developers.weixin.qq.com/miniprogram/dev/devtools/minicode.html)。