ANTICHAT

ANTICHAT (https://forum.antichat.xyz/index.php)
-   Общие вопросы программирования (https://forum.antichat.xyz/forumdisplay.php?f=206)
-   -   node js googlesheets (https://forum.antichat.xyz/showthread.php?t=1490467)

Kecer 29.09.2023 19:33

Приветствую, использую библиотеку google-spreadsheet для node js, у меня есть таблица с Именами и к этим именам привязан возраст и город проживания.

Как я могу реализовать такую функцию что бы условно говоря я искал по столбцу Name определённого пользователя и мог изменить у этого пользователя допустим возраст, или город

Вот таблица

https://forum.antichat.xyz/attachments/28385347/

Был очень благодарен за помощь!

Kecer 29.09.2023 20:43

Цитата:

Сообщение от MrDorlik

ну примерно так

JavaScript:





Код:

const
rows
=
await
sheet
.
getRows
(
)
;
const
userRow
=
rows
.
find
(
row
=>
row
.
Name
===
'Alex'
)
;
userRow
.
Age
=
200
;
userRow
.
Country
=
'Muhosransk'
;
await
userRow
.
save
(
)
;



const userRow = rows.find(row => row.Name === 'Alex');

Ничо не находит, undefined

MrDorlik 29.09.2023 20:49

Цитата:

Сообщение от Kecer

const userRow = rows.find(row => row.Name === 'Alex');

Ничо не находит, undefined

мб так

JavaScript:





Код:

const
rows
=
await
sheet
.
getRows
(
)
;
const
userRow
=
rows
.
find
(
row
=>
row
.
A
===
'Alex'
)
;
userRow
.
B
=
200
;
userRow
.
C
=
'Muhosransk'
;
await
userRow
.
save
(
)
;


Kecer 29.09.2023 20:52

Цитата:

Сообщение от MrDorlik

мб так

JavaScript:





Код:

const
rows
=
await
sheet
.
getRows
(
)
;
const
userRow
=
rows
.
find
(
row
=>
row
.
A
===
'Alex'
)
;
userRow
.
B
=
200
;
userRow
.
C
=
'Muhosransk'
;
await
userRow
.
save
(
)
;



Тоже

MrDorlik 29.09.2023 20:53

Цитата:

Сообщение от Kecer

Тоже

у тебя таблица то есть? в переменную sheet ее запиши

Kecer 29.09.2023 20:58

Цитата:

Сообщение от MrDorlik

у тебя таблица то есть? в переменную sheet ее запиши

Есть, дело в том что тут нету массива в общем, то-есть обычным find обойтись нельзя, смори у меня есть код такой

JavaScript:





[CODE]
const
doc
=
new
GoogleSpreadsheet
(
'Код доступа'
,
serviceAccountAuth
)
;
await
doc
.
loadInfo
(
)
;
// loads document properties and worksheets
const
sheet
=
doc
.
sheetsByIndex
[
0
]
;
const
rows
=
await
sheet
.
getRows
(
)
;
// preload
await
sheet
.
loadCells
(
'A1:'
+
String
.
fromCharCode
(
65
+
sheet
.
columnCount
-
1
)
+
rows
.
length
+
1
)
;
// подгружаем все нужные ячейки( ascii - код буквы "А" + количество столбцов - подгружаем к примеру от A1 до C8)
for
(
let
i
=
0
;
i



Он идеально работал до обновы либы, но сейчас мне выдаётся следующия ошибка:

Error: At least one cell must have something to update

MrDorlik 29.09.2023 21:03

[QUOTE="Kecer"]

Есть, дело в том что тут нету массива в общем, то-есть обычным find обойтись нельзя, смори у меня есть код такой

JavaScript:





[CODE]
const
doc
=
new
GoogleSpreadsheet
(
'Код доступа'
,
serviceAccountAuth
)
;
await
doc
.
loadInfo
(
)
;
// loads document properties and worksheets
const
sheet
=
doc
.
sheetsByIndex
[
0
]
;
const
rows
=
await
sheet
.
getRows
(
)
;
// preload
await
sheet
.
loadCells
(
'A1:'
+
String
.
fromCharCode
(
65
+
sheet
.
columnCount
-
1
)
+
rows
.
length
+
1
)
;
// подгружаем все нужные ячейки( ascii - код буквы "А" + количество столбцов - подгружаем к примеру от A1 до C8)
for
(
let
i
=
0
;
i

JavaScript:





Код:

sheet
.
saveUpdatedCells
(
[
cell
]
)
;


Kecer 29.09.2023 21:09

Цитата:

Сообщение от MrDorlik

вместо 15 строки попробуй







JavaScript:





Код:

sheet
.
saveUpdatedCells
(
[
cell
]
)
;



Бля братан ты просто лучший спасибо 😍😍😍


Время: 12:54