Я новичок в программировании (просто предупреждаю, заранее извиняюсь за ужасный код). Я создаю инструмент, чтобы мой работодатель мог в основном загружать CSV-файл с данными, связанными с маркетинговыми показателями, и он будет обновлять внешний google лист, который мы используем для представления маркетинговых показателей клиенту.
Проблема, с которой я сталкиваюсь, заключается в значении, которое я пытаюсь отправить на лист Google. Всякий раз, когда я использую строку, данные отправляются без проблем, но когда я загружаю свой тестовый CSV, значение регистрируется в консоли, но не передается в листы Google (это просто пусто, ничего нового на листе.)
Я также пытался просто передать необработанную переменную, и я получаю сообщение об ошибке: «Недопустимые значения [5] [0]: list_value {}»»
Есть ли способ отправить finalResult в листы Google?
Я пробовал следующие вещи, чтобы разобраться с этим:
Что, я думаю, мне нужно сделать, так это преобразовать мою переменную в массив с переменной finalResult в качестве моего единственного значения в этой строке, а затем, возможно, передать «имя массива [0]» в разделе значений? Но для меня это не имело бы смысла, потому что у вас есть массив внутри массива, верно? Мой мозг взрывается, потому что здесь мои знания более ограничены на этом фронте.
Я благодарен за любой вклад/совет. Спасибо!
//This is where papa parse parses the data, the reason for so many arrays is that there are multiple cells that need to be parsed and then added at the end to provide a total amount.
const DCJRtotalreach = [];
const uploadConfirm = document.getElementById('submit').addEventListener('click', () => {
Papa.parse(document.getElementById('magfile').files[0],
{
download: true,
header: false,
skipEmptyLines: true,
complete: function(resultsa){
var reach1Array = resultsa.data[2];
var reach1 = reach1Array.slice(1, 2);
var arrayParse1 = reach1.map((x) => parseInt(x));
var reach2Array = resultsa.data[3];
var reach2 = reach2Array.slice(1, 2);
var arrayParse2 = reach2.map((x) => parseInt(x));
var reach3Array = resultsa.data[4];
var reach3 = reach3Array.slice(1, 2);
var arrayParse3 = reach3.map((x) => parseInt(x));
var reach4Array = resultsa.data[5];
var reach4 = reach4Array.slice(1, 2);
var arrayParse4 = reach4.map((x) => parseInt(x));
var reach5Array = resultsa.data[6];
var reach5 = reach5Array.slice(1, 2);
var arrayParse5 = reach5.map((x) => parseInt(x));
var reach6Array = resultsa.data[7];
var reach6 = reach6Array.slice(1, 2);
var arrayParse6 = reach6.map((x) => parseInt(x));
//This is where I am taking each cell's data and creating a sum value
DCJRWHtotalReach = arrayParse1[0] + arrayParse2[0] + arrayParse3[0] + arrayParse4[0] + arrayParse5[0] + arrayParse6[0]
console.info(String(DCJRWHtotalReach));
const finalResult = DCJRtotalreach;
// This is where I have set up my values to send this data to google sheets.
async function WHDCJRmetrics () {
return response = await gapi.client.sheets.spreadsheets.values.update({
"spreadsheetId": "THIS IS WHERE I KEEP MY SPREADSHEET ID",
"range": "Sheet1!C6",
"includeValuesInResponse": true,
"responseDateTimeRenderOption": "FORMATTED_STRING",
"responseValueRenderOption": "FORMATTED_VALUE",
"valueInputOption": "RAW",
"resource": {
"values": [
[
String(finalResult) //This is meant to be passed as a string but is not functioning, however this DOES work if I put "hello world" for an example.
]
]
}
});
}
WHDCJRmetrics();
}
});
});



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Когда я увидел ваш сценарий, мне показалось, что finalResult это DCJRtotalreach. И DCJRtotalreach объявляется как const DCJRtotalreach = [];. В вашем скрипте DCJRtotalreach всегда пусто. При этом "values": [[]] используется в качестве значения. При этом ставится пустое значение. Я подумал, что это может быть причиной вашей текущей проблемы. Если вы хотите поместить значение DCJRWHtotalReach в ячейку «Лист1! C6», как насчет следующей модификации?
"valueInputOption": "RAW",
"resource": {
"values": [
[
String(finalResult) //This is meant to be passed as a string but is not functioning, however this DOES work if I put "hello world" for an example.
]
]
"valueInputOption": "USER_ENTERED",
"resource": { "values": [[DCJRWHtotalReach]] }
DCJRWHtotalReach помещается в ячейку «Лист1! C6».Эта модификация предполагает, что ваш gapi.client.sheets.spreadsheets.values.update отлично работает для размещения в вашей электронной таблице Google с помощью Sheets API. Пожалуйста, будьте осторожны с этим.
Когда я протестировал модифицированный сценарий вашего сценария, используя образец значения, ошибок не возникло, и я подтвердил, что значение DCJRWHtotalReach можно поместить в ячейку «Лист1!C6». Но, если возникает ошибка, подтвердите значение DCJRWHtotalReach еще раз. И, если ошибка возникает в другой части, укажите пример значения resultsa для правильного воспроизведения проблемы. Этим я хотел бы подтвердить это.
Спасибо за ваш ответ! Я изменил код в соответствии с вашими рекомендациями, и он прошел и заработал. Большое спасибо за Вашу помощь. Ваш ответ также помог очистить часть моей структуры кода, так что спасибо и за это. Ваше здоровье!