base-64
CSV
导入Google脚本。Error
Exception: This action would increase the number of cells in the workbook above the limit of 10000000 cells.
myFunction @ Code.gs:16
function myFunction() {
var csv_string = [base-64-string];
var decoded = Utilities.base64Decode(csv_string); // decoded string
var string = Utilities.newBlob(decoded).getDataAsString(); // csv string
var array = Utilities.parseCsv(string) // 2d array
console.log(array.length);
console.log(array[0].length);
Logger.log(array.every(function(row){return row.length === 1}));
SpreadsheetApp.getActiveSheet().getRange(1,1,array.length,array[0].length).setValues(array);
}
console.log(array.length);
1
日志console.log(array[0].length);
12537
日志Logger.log(array.every(function(row){return row.length === 1}));
false
日志发布于 2022-08-10 09:06:41
当我看到从您的base64中解码的数据时,数据似乎是JSON数据,而不是CSV数据。我认为你当前问题的原因就是因为这一点。
从您提供的数据中,为了解析数据,下面的示例脚本如何?
示例脚本:
function myFunction() {
var base64 = "###"; // Your provided base64 data.
var decoded = Utilities.base64Decode(base64);
var obj = JSON.parse(Utilities.newBlob(decoded).getDataAsString());
var obj2 = JSON.parse(obj.Rows);
var actualHeader = ["Transaction Date","Particulars","Amount","Cr/Dr","Balance","Transaction Type","Party Name","Charge Name","Charge Class"];
var objHeader = ["Transaction_Date","Particulars","Amount","Cr_Dr","Balance","Transaction_Type","Normalized_Party_Name_Label","Normalized_Charge_Name_Label","Charge_Class"];
var array = [actualHeader, ...obj2.map(o => objHeader.map(h => o[h] || ""))];
// Here, the value is put to the active sheet.
SpreadsheetApp.getActiveSheet().getRange(1,1,array.length,array[0].length).setValues(array);
}
actualHeader
是从您的评论的数据。objHeader
来自JSON数据。https://drive.google.com/file/d/1I9Liq1ePrqZXQlejMwpOu3q3VZo_7hCI/view?usp=sharing
的JSON数据,则可以按以下方式修改var base64
。
变量数据= DriveApp.getFileById("1I9Liq1ePrqZXQlejMwpOu3q3VZo_7hCI").getBlob().getDataAsString();var base64 = JSON.parse(data).Output.Augmented_Transactions.Base64EncodedFile;array
转换为CSV数据,那么使用var csv = array.map(r => r.join(",")).join("\n")
如何?参考资料:
https://stackoverflow.com/questions/73301569
复制相似问题