PDA

Просмотр полной версии : node js googlesheets


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

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

Вот таблица

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

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

Kecer
29.09.2023, 20:43
ну примерно так

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
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
мб так

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
Тоже


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

Kecer
29.09.2023, 20:58
у тебя таблица то есть? в переменную 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:






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:





[CODE]
sheet
.
saveUpdatedCells
(
[
cell
]
)
;

Kecer
29.09.2023, 21:09
вместо 15 строки попробуй







JavaScript:






sheet
.
saveUpdatedCells
(
[
cell
]
)
;





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