如何导出与导入SheetsJS内部的SheetJS数据模型格式?
SheetJS内部数据模型的序列化与反序列化方法
导出为JSON
SheetJS的内部工作簿对象本质就是普通JavaScript对象,你完全可以用JSON.stringify()直接序列化:
// 假设已经通过SheetJS读取得到工作簿对象wb const jsonStr = JSON.stringify(wb); // 可保存到文件、localStorage或其他存储介质 localStorage.setItem("sheetjs_workbook", jsonStr);
从JSON恢复工作簿对象
用JSON.parse()解析序列化后的字符串,得到的对象可以直接被SheetJS的所有API调用,无需额外转换:
const jsonStr = localStorage.getItem("sheetjs_workbook"); const wb = JSON.parse(jsonStr); // 直接使用SheetJS API操作,比如导出为Excel文件 XLSX.writeFile(wb, "restored_workbook.xlsx"); // 或者转换为结构化数组 const sheetData = XLSX.utils.sheet_to_json(wb.Sheets[wb.SheetNames[0]]);
注意事项
- 官方未将此功能正式文档化,因为内部模型理论上可能随版本微调,但实际使用中只要前后SheetJS版本一致,兼容性问题极少。
- 若工作簿包含复杂格式(如单元格样式、自定义公式),建议先做小范围测试——基础版SheetJS本身对样式支持有限,Pro版的样式数据也能正常完成序列化/反序列化流程。
内容的提问来源于stack exchange,提问作者greenbas
相关产品推荐
相关产品推荐

