nodejs 将字符串转换为数组以上传到 google 张

nodejs turn string into array to upload to google sheets

主要目标

  1. 从 google sheet 选项卡中检索字符串。
  2. 编辑字符串以删除 "s 和 ,s。
  3. 将要上传的字符串重新格式化为 google sheets.

我已经完成了目标的前两项任务。虽然我会详细说明情况。

我正在查询 google sheet 到 return 包含指定字符串的行,以便可以将其添加到新的 sheet。目前我已经能够很好地检索该行。返回的数据看起来像这样。

"12/24/2020, 3:40:33 PM","SanguineDepths+5","The Key Is Timed","1000","Aegwynn","@name @name @name @[Manager] name-name","name#0000 name#0000 name#0000 name#0000","Advertiser-Realm","testing-testing","Ticket","33p2bdlfto9g45","Customer-Realm","Horde",""

然后我使用以下代码删除了所有的 "s 和 ,s。

const result = `"12/24/2020, 3:40:33 PM","SanguineDepths+5","The Key Is Timed","1000","Aegwynn","@name @name @name @[Manager] name-name ","name#0000 name#0000 name#0000 name#0000","Advertiser-Realm","testing-testing","Ticket","33p2bdlfto9g45","Customer-Realm","Horde",""`

var result1 = result.replace (/,/g, " ");
var result2 = result1.replace (/"/g, "");

现在我的字符串看起来像这样。

12/24/2020 3:40:33 PM SanguineDepths+5 Timed 1000 Aegwynn @name @name @name @[Manager] name-name name#0000 name#0000 name#0000 name#0000 Advertiser-Realm testing-testing Ticket 33p2bdlfto9g45 Customer-Realm Horde

当上传删除我不需要的字符的上述字符串时,google sheets 实际上在一个单元格而不是多个单元格中输入所有数据,有什么办法可以解决这个?我确实尝试过使用参数,尽管我希望一个单元格中有 4 个不和谐的名称#0000,而 4 个不和谐的@name 也在它们自己的单元格中,就像这样。

Desired format for data to be entered in

所以我的主要目标是以这样一种方式格式化结果,我可以将它们写入 google sheets 在他们自己的单元格中。

编辑#1

我使用了 .split(',') 函数,但是 google API return 出现以下错误:

“API return 出现错误:错误:无效值[1][0]:list_value”

您可以尝试以中间的逗号为目标,将那一点的数据拆分为一个数组,然后注意删除字符。 尝试:

result.split(',')

那应该给你一个数组。 你可以重新使用你的代码来用数组助手去掉你不需要的字符:比如:

result.split(',').map((part) => {
 return part.replace (/"/g, "")
})

我希望有一个更简单的解决方案,但我最终使用了这个方法,并为我从 sheet.

返回的字符串提供了多个参数

var result1 = result.replace (/,/g, " ");
                    var result2 = result1.replace (/"/g, "");

                    const argsRUN = result2.split(' ');
                    const command = argsRUN.shift().toLowerCase();

                    var date1 = (argsRUN[0]);
                    var time1 = (argsRUN[1]);
                    var ampm = (argsRUN[2]);
                    var dungeonkey = (argsRUN[3]);
                    var timedornot = (argsRUN[4]);
                    var costofboost = (argsRUN[5]);
                    var paymentrealm1 = (argsRUN[6]);
                    var boost1ID = (argsRUN[7]);
                    var boost2ID = (argsRUN[8]);
                    var boost3ID = (argsRUN[9]);
                    var boost4ID = (argsRUN[10]);
                    var boost1tag = (argsRUN[11]);
                    var boost2tag = (argsRUN[12]);
                    var boost3tag = (argsRUN[13]);
                    var boost4tag = (argsRUN[14]);
                    var advertiserrealm = (argsRUN[15]);
                    var commentup = (argsRUN[16]);
                    var ticketornot = (argsRUN[17]);
                    var uniquerunid = (argsRUN[18]);
                    var customerrealm = (argsRUN[19]);
                    var customerfaction = (argsRUN[20]);