<button @click="confirmExport">导出excel</button>
confirmExport() {let header = {"X-Access-Token": uni.getStorageSync(ACCESS_TOKEN), //自定义请求头信息} let url = "http"/......"; // 后端API地址uni.request({url: url,method: "POST",// method:"GET",header: header,responseType: "arraybuffer",}).then((res) => {const now = new Date();const fileName = now.toISOString() + ".xlsx";const arrayBuffer = res[1].data; // utf-8编码的文件数据const base64String = uni.arrayBufferToBase64(arrayBuffer);const buffer = uni.base64ToArrayBuffer(base64String);let fs = uni.getFileSystemManager();const filePath = wx.env.USER_DATA_PATH + "/" + fileName;fs.writeFile({filePath: filePath,data: buffer,encoding: "binary",success: (res) => {console.log("文件保存成功");uni.openDocument({filePath: filePath,fileType: 'xlsx',showMenu: true,success: (res) => {console.log("文件预览成功");// 构建分享内容},fail: (error) => {console.error("文件保存失败", error);},});},});});},
缺陷:iOS 报错 officeImportErrorDomain错误912
解决方案:
1.点击右上角的三个点,选择“用其他应用打开”,可选择WPS打开,即可浏览
原因:
iOS 不能打开 `.doc` `.xls` `.ppt` 类型的文档
微信小程序的 接口wx.openDocument 支持打开office相关文件, 但是 IOS端不支持旧版 97-2003版的格式,需要打开office文件的统一上传新版pptx, docx, xlsx格式的文件, 不要用ppt, doc, 和xls