如何用JavaScript将Excel转成的JSON保存为VS Code的data.json文件
实现Excel转JSON并自动生成可下载的data.json文件
你现有的代码已经完成了Excel到JSON的转换,接下来可以通过添加文件下载逻辑,实现自动生成并下载data.json文件,无需手动复制。以下是修改后的完整代码:
let selectedFile; // 监听文件选择 const inputEl = document.getElementById("input"); inputEl.addEventListener("change", function (e) { e.preventDefault(); selectedFile = e.target.files[0]; }); // 监听转换按钮点击 const btnEl = document.querySelector("button"); btnEl.addEventListener("click", function () { if (selectedFile) { let fileReader = new FileReader(); fileReader.readAsBinaryString(selectedFile); fileReader.onload = function (event) { let data = event.target.result; let workbook = XLSX.read(data, { type: "binary" }); workbook.SheetNames.forEach((sheet) => { let rowObject = XLSX.utils.sheet_to_row_object_array(workbook.Sheets[sheet]); const jsonStr = JSON.stringify(rowObject, undefined, 4); // 保留原有显示JSON的功能 document.getElementById("jsondata").innerHTML = jsonStr; // 生成并自动下载data.json文件 const blob = new Blob([jsonStr], { type: "application/json" }); const url = URL.createObjectURL(blob); const downloadLink = document.createElement("a"); downloadLink.href = url; downloadLink.download = "data.json"; // 指定下载的文件名 document.body.appendChild(downloadLink); downloadLink.click(); // 自动触发下载 document.body.removeChild(downloadLink); URL.revokeObjectURL(url); // 释放临时URL资源 }); }; } });
关键说明
- 浏览器出于安全限制,无法直接将文件写入本地指定路径(比如你VS Code项目中的
data.json),但上述代码会自动触发下载弹窗,你只需将下载的data.json保存到项目对应的目录即可。 - 如果你的代码是在Electron、Node.js这类拥有本地文件系统访问权限的环境中运行,可以直接用Node.js的
fs模块写入文件,示例如下:
// 仅适用于Electron/Node.js环境 const fs = require('fs'); // ...(保留原有Excel转JSON的逻辑) const jsonStr = JSON.stringify(rowObject, undefined, 4); // 直接写入项目目录下的data.json文件 fs.writeFileSync('./data.json', jsonStr, 'utf8');
内容的提问来源于stack exchange,提问作者guaPeo USA
相关产品推荐
相关产品推荐

