我正在尝试将一组延时保存到我正在构建的 expo React 本机应用程序中的 Excel 文件中。当我单击“保存”按钮时,它会抛出此错误
[未处理的承诺拒绝:错误:对函数“ExponentFileSystem.writeAsStringAsync”的调用已被拒绝。]
我使用的是 Android 设备。
我查遍了谷歌,但找不到这个问题的解决方案。有谁知道如何解决这个问题吗?
这是我保存文件的函数的代码:
const writeArrayToExcel = async (dataArray) => {
const resultsMade = [["lap", "time"]];
dataArray.map((lapTime, index) => {
const lapName = `${lapWord} ${index + 1}`;
const valLap = `${displayTime(lapTime).hours}:${displayTime(lapTime).minutesSeconds}:${displayTime(lapTime).centiseconds}`;
resultsMade.push([lapName, valLap]);
})
let wb = XLSX.utils.book_new();
let ws = XLSX.utils.aoa_to_sheet(resultsMade);
XLSX.utils.book_append_sheet(wb, ws, 'Sheet1');
const base64 = XLSX.write(wb, { bookType: 'xlsx', type: 'base64' });
const currentDate = new Date();
const formattedDate = `${currentDate.getFullYear()}-${(currentDate.getMonth() + 1).toString().padStart(2, '0')}-${currentDate.getDate().toString().padStart(2, '0')}_${currentDate.getHours().toString().padStart(2, '0')}-${currentDate.getMinutes().toString().padStart(2, '0')}-${currentDate.getSeconds().toString().padStart(2, '0')}`;
const filename = FileSystem.downloadDirectory + `Stopwatch-${formattedDate}.xlsx`;
FileSystem.writeAsStringAsync(filename, base64, {
encoding: FileSystem.EncodingType.Base64
}).then(() => {
//Sharing.shareAsync(filename);
});
};
const exportToExcel = () => {
writeArrayToExcel(results);
};
按照Expo“writeAsStringAsync”的建议,内容应该是字符串。
如果不是,应该转换为字符串
writeAsStringAsync(fileUri, JSON.stringify(content),EncodingObj)