微信小程序导出base64格式的excel并自动打开,代码如下:
function goExportWages() { uni.$app.showLoading('正在导出...') uni.$app.ajax({ api: uni.$api.taskUserExport(), data: { taskId: props.detail.id } }).then(res => { if(res.status === 200) { // 请求到的base64内容 const base64Str = res.data.fileData // 转换base64 const fsm = uni.getFileSystemManager() // 文件名,这里已经带了 xlsx 后缀,如果不带,需要自己加上 const FILE_BASE_NAME = res.data.fileName const filePath = `${wx.env.USER_DATA_PATH}/${FILE_BASE_NAME}` fsm.writeFile({ filePath: filePath, data: base64Str, // 这个可以根据需求,我这里是base64 encoding: 'base64', success: res => { const sysInfo = wx.getSystemInfoSync() if (sysInfo.platform.toLowerCase().indexOf('windows') >= 0) { wx.saveFileToDisk({ filePath: filePath, success: console.log, fail: console.error }) } else { wx.openDocument({ filePath: filePath, showMenu: true, // 需要添加showMenu允许用户导出 success: console.log, fail: console.error }) } }, fail: e => { if (e.errMsg.indexOf('locked')) { uni.$app.showToast('文档已打开,请先关闭') } } }) } else { uni.$app.showToast(res.message) } uni.$app.hideLoading() }) }