如何将电子表格列中的 JSON 类数据导出到 json 文件?
How to export JSON-like data in spreadsheet column to json file?
我有一个 Google sheet 列中有类似 JSON 的数据,我想将此列导出为 JSON 文件。我尝试使用 javascript 和 xlsx 包将 sheet 转换为 json 文件,但它向列中添加了反斜杠并且无法使用 JSON.parse 进行解析(抛出语法错误) () 因为它不认为它是有效的 json。任何帮助表示赞赏!
let xlsx = require("xlsx")
let path = require("path")
let fs = require("fs");
const inputFilePath = path.join(__dirname, './Sample.xlsx');
let File = xlsx.readFile(inputFilePath);
let content = xlsx.utils.sheet_to_json(File.Sheets['Sheet1']);
console.log(JSON.parse(content[0]["content"])); //throws error
这是一个不带反斜杠写入数据的示例(在这种情况下不要使用 JSON.stringify)。该文件将位于此处的 'test' 文件夹中,您必须在脚本中创建或更改该文件。
// you need to activate the Advanced Drive Service (Drive Activity API).
function test() {
var content = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet().getRange('A1').getValue();
var folders = DriveApp.getFoldersByName("test");
if (folders.hasNext()) {
var folder = folders.next();
saveData(folder, 'myJSON.json',content);
}
}
function saveData(folder, fileName, content) {
var children = folder.getFilesByName(fileName);
var file = null;
if (children.hasNext()) {
file = children.next();
file.setContent(content);
} else {
file = folder.createFile(fileName, content);
}
}
https://docs.google.com/spreadsheets/d/1PWzdlaZi2m0a1xDiqLp2eJXIvx-AyvZ16CQW362q-Nw/edit?usp=sharing
当然,为您的文件用 B2 替换 A1。
我有一个 Google sheet 列中有类似 JSON 的数据,我想将此列导出为 JSON 文件。我尝试使用 javascript 和 xlsx 包将 sheet 转换为 json 文件,但它向列中添加了反斜杠并且无法使用 JSON.parse 进行解析(抛出语法错误) () 因为它不认为它是有效的 json。任何帮助表示赞赏!
let xlsx = require("xlsx")
let path = require("path")
let fs = require("fs");
const inputFilePath = path.join(__dirname, './Sample.xlsx');
let File = xlsx.readFile(inputFilePath);
let content = xlsx.utils.sheet_to_json(File.Sheets['Sheet1']);
console.log(JSON.parse(content[0]["content"])); //throws error
这是一个不带反斜杠写入数据的示例(在这种情况下不要使用 JSON.stringify)。该文件将位于此处的 'test' 文件夹中,您必须在脚本中创建或更改该文件。
// you need to activate the Advanced Drive Service (Drive Activity API).
function test() {
var content = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet().getRange('A1').getValue();
var folders = DriveApp.getFoldersByName("test");
if (folders.hasNext()) {
var folder = folders.next();
saveData(folder, 'myJSON.json',content);
}
}
function saveData(folder, fileName, content) {
var children = folder.getFilesByName(fileName);
var file = null;
if (children.hasNext()) {
file = children.next();
file.setContent(content);
} else {
file = folder.createFile(fileName, content);
}
}
https://docs.google.com/spreadsheets/d/1PWzdlaZi2m0a1xDiqLp2eJXIvx-AyvZ16CQW362q-Nw/edit?usp=sharing
当然,为您的文件用 B2 替换 A1。