React Native iOS端如何将JSON数据导出为Excel文件?
React Native iOS导出Excel文件找不到的解决办法
iOS的文件系统采用沙盒机制,你之前的代码可能使用了应用私有目录——这类目录默认不对用户开放,所以文件生成后无法在系统Files app中找到。以下是具体解决步骤:
1. 配置Info.plist让目录可见
在iOS项目的Info.plist中添加两个配置,让应用的Documents目录能被系统Files app识别:
- 添加
UIFileSharingEnabled键,值设为YES(对应描述:Application supports iTunes file sharing) - 添加
LSSupportsOpeningDocumentsInPlace键,值设为YES(对应描述:Supports opening documents in place)
配置后,你的应用目录会出现在Files app的「On My iPhone」列表下。
2. 修改代码使用正确的目录
替换代码中的目录占位符为RNFS.DocumentDirectory,这个目录在配置后对用户可见:
import XLSX from 'xlsx'; import RNFS from 'react-native-fs'; const exportExcel = async (dataToExport, reportName) => { try { const wb = XLSX.utils.book_new(); const ws = XLSX.utils.json_to_sheet(dataToExport); XLSX.utils.book_append_sheet(wb, ws, "Users"); const wbout = XLSX.write(wb, { type: "binary", bookType: "xlsx" }); // 使用iOS可访问的Documents目录 const filePath = `${RNFS.DocumentDirectory}/${reportName}.xlsx`; await RNFS.writeFile(filePath, wbout, "ascii"); console.log(`文件已导出到:${filePath}`); // 可选:直接打开文件让用户预览 await RNFS.openDocument(filePath); } catch (err) { console.error("导出失败:", err); } };
3. 验证文件位置
导出完成后,打开系统Files app,找到「On My iPhone」下你的应用名称文件夹,就能看到生成的Excel文件。
内容的提问来源于stack exchange,提问作者lonewolf
相关产品推荐
相关产品推荐

