Пока с Google Sheets API я закончил. Но, на самом деле, в этом апи есть ещё много чего интересного. Конечно есть методы по стилизации, условному форматированию, формулам и всякому такому. Если вам интересно продолжение темы с Google Sheets API - пишите в комментариях к этому и предыдущему видео. Напишите что вам интересно в первую очередь...
Здравствуйте! Прикрутил простенький интерфейс tkinter, потом решил собрать для дальнейшего использования через pyinstaller -F __main__pyw. Но после сборки при попытке отправки данных получаю ошибку отсутствия creds sacc1.json. Также и после сборки pyinstaller __main__.py , если не добавить вручную папку creds в папку с проектом, получаю такую же ошибку. Заранее благодарю! P. S. Я очень начинаюший)
Вероятно так и должно быть. Я просто вынул из репозитория папку со своими токенами (creds), вам нужно создать её, прописать туда ваши токены (соотв создать проект в GCP, если у вас есть там акк) и только после этого собирать. Возможно что-то сделать в настройках pyinstaller (я с ним не работал).
Огромное спасибо за такие полезные и подробные видео! Если кому-то нужно создать новый лист в текущем документе то можно использовать вот этот код (код как раз подойдет для текущего проекта из видео): new_tab_title = "новый лист" body = { 'requests': [{ 'addSheet': { 'properties': { 'title': new_tab_title, 'tabColor': { 'red': 0.44, 'green': 0.99, 'blue': 0.50 } } } }] } result = sheet.batchUpdate( spreadsheetId=sheet_id, body=body).execute() print(result)
Большое спасибо за прекрасное видео. p.s.: после пары опытов есть ответ на ваш вопрос ! OVERWRITE vs insert_rows : Есть разница и ее легко увидеть , заполнив таблицу [(1,1,1),(1, ,1),(1,1,1)] , т.е. ячейка B2 свободна и вставлять массив 3*3 в нее. insert_rows - вставит 3 строки целиком, сместив низ таблицы, а OVERWRITE - вставит ровно в B2 а все правее и ниже перезапишет.
Было бы очень круто увидеть урок, как можно сделать выборку конкретных полей из моделей базы данных и загрузить их в файл excel через Google Sheets API. Приоритетно, используя Django
Хммм... Записал. Подумаю. ~~ Так то в клиентах к Google API (будь то питон или пхп) данные для записи в таблицу это обычный плоский двумерный массив. Соотв. в таком примере все сведется лишь к выбору оптимального способа превращения моделей конкретной ORM в плоский массив элементов стандартных типов. В каких то ORM такие методы встроены (getattributes в eloquent laravel), а в sqlalchemy, например, придется писать такие методы. И, в любом сл, это задача никак не будет связана с любыми эл таблицами (будь то Google Sheets или MS Excel). Ну то есть притянуть за уши то можно, но объективно это разные задачи ))) ~~ Если брать конкретно джанго, то гуглим что-то типа django query set to list/dict/dataframe и выбираем наиболее приятное решение.
Если я правильно понял вопрос, то доступные форматы координат указаны здесь developers.google.com/sheets/api/guides/concepts#cell в разделе A1 notation. И в массив data вы можете передать данные по ячейкам, в т.ч. по каждой ячейке отдельно.
добрый день. столкнулся с проблемой которую решить я не в силах, помогите пожалуйста!!! весь код идентичен, все делаю как у вас написанои и показано но ничего не помогает. код ошибки: Traceback (most recent call last): File "C:\Program Files\JetBrains\PyCharm Community Edition 2022.2\plugins\python-ce\helpers\pydev\pydevd.py", line 1496, in _exec pydev_imports.execfile(file, globals, locals) # execute the script File "C:\Program Files\JetBrains\PyCharm Community Edition 2022.2\plugins\python-ce\helpers\pydev\_pydev_imps\_pydev_execfile.py", line 18, in execfile exec(compile(contents+" ", file, 'exec'), glob, loc) File "C:/Users/23/PycharmProjects/xls12/main.py", line 35, in sheet = get_service_sacc().spreadsheets() File "C:/Users/23/PycharmProjects/xls12/main.py", line 31, in get_service_sacc creds_service = ServiceAccountCredentials.from_json_keyfile_name(creds_json, scopes).authorize(httplib2.Http()) File "C:\Users\23\PycharmProjects\xls12\venv\lib\site-packages\oauth2client\service_account.py", line 221, in from_json_keyfile_name return cls._from_parsed_json_keyfile(client_credentials, scopes, File "C:\Users\23\PycharmProjects\xls12\venv\lib\site-packages\oauth2client\service_account.py", line 171, in _from_parsed_json_keyfile raise ValueError('Unexpected credentials type', creds_type, ValueError: ('Unexpected credentials type', None, 'Expected', 'service_account') python-BaseException
Судя по всему у вас не создан json файлик с секретками сервисного аккаунта, я описал порядок установки здесь github.com/AzzraelCode/google-sheets. У меня есть несколько роликов о создании токенов в GAPI. Самый короткий th-cam.com/video/fxGeppjO0Mg/w-d-xo.html . Есть и другие, где более подробно с пояснениями.
Пока с Google Sheets API я закончил. Но, на самом деле, в этом апи есть ещё много чего интересного. Конечно есть методы по стилизации, условному форматированию, формулам и всякому такому. Если вам интересно продолжение темы с Google Sheets API - пишите в комментариях к этому и предыдущему видео. Напишите что вам интересно в первую очередь...
Здравствуйте! Прикрутил простенький интерфейс tkinter, потом решил собрать для дальнейшего использования через pyinstaller -F __main__pyw. Но после сборки при попытке отправки данных получаю ошибку отсутствия creds sacc1.json. Также и после сборки pyinstaller __main__.py , если не добавить вручную папку creds в папку с проектом, получаю такую же ошибку. Заранее благодарю!
P. S. Я очень начинаюший)
Вероятно так и должно быть. Я просто вынул из репозитория папку со своими токенами (creds), вам нужно создать её, прописать туда ваши токены (соотв создать проект в GCP, если у вас есть там акк) и только после этого собирать. Возможно что-то сделать в настройках pyinstaller (я с ним не работал).
Огромное спасибо за такие полезные и подробные видео!
Если кому-то нужно создать новый лист в текущем документе то можно использовать вот этот код (код как раз подойдет для текущего проекта из видео):
new_tab_title = "новый лист"
body = {
'requests': [{
'addSheet': {
'properties': {
'title': new_tab_title,
'tabColor': {
'red': 0.44,
'green': 0.99,
'blue': 0.50
}
}
}
}]
}
result = sheet.batchUpdate(
spreadsheetId=sheet_id,
body=body).execute()
print(result)
Спасибо за разбор. Так же интересно было бы разобраться в прямом парсинге с записью с разу в гугл таблицы
Спасибо большое за проделанный труд! Твои наработки очень помогли!
Большое спасибо за прекрасное видео.
p.s.: после пары опытов есть ответ на ваш вопрос ! OVERWRITE vs insert_rows :
Есть разница и ее легко увидеть , заполнив таблицу [(1,1,1),(1, ,1),(1,1,1)] , т.е. ячейка B2 свободна и вставлять массив 3*3 в нее. insert_rows - вставит 3 строки целиком, сместив низ таблицы, а OVERWRITE - вставит ровно в B2 а все правее и ниже перезапишет.
Спасибо!
Было бы очень круто увидеть урок, как можно сделать выборку конкретных полей из моделей базы данных и загрузить их в файл excel через Google Sheets API. Приоритетно, используя Django
Хммм... Записал. Подумаю.
~~
Так то в клиентах к Google API (будь то питон или пхп) данные для записи в таблицу это обычный плоский двумерный массив. Соотв. в таком примере все сведется лишь к выбору оптимального способа превращения моделей конкретной ORM в плоский массив элементов стандартных типов. В каких то ORM такие методы встроены (getattributes в eloquent laravel), а в sqlalchemy, например, придется писать такие методы. И, в любом сл, это задача никак не будет связана с любыми эл таблицами (будь то Google Sheets или MS Excel). Ну то есть притянуть за уши то можно, но объективно это разные задачи )))
~~
Если брать конкретно джанго, то гуглим что-то типа django query set to list/dict/dataframe и выбираем наиболее приятное решение.
доходчиво
Здравствуйте, есть вариант поменять значения batchUpdate, где range в виде координат ячеек?
Если я правильно понял вопрос, то доступные форматы координат указаны здесь developers.google.com/sheets/api/guides/concepts#cell в разделе A1 notation. И в массив data вы можете передать данные по ячейкам, в т.ч. по каждой ячейке отдельно.
Здравствуйте, перешел по исходному коду из видео. Там другой код. Можете дать код из видео?
Код в том же репозитории просто в другой ветке ;)
Вот прямая ссылка github.com/AzzraelCode/google-sheets/blob/video-2-sacc-update-sheet/__main__.py
добрый день. столкнулся с проблемой которую решить я не в силах, помогите пожалуйста!!! весь код идентичен, все делаю как у вас написанои и показано но ничего не помогает. код ошибки: Traceback (most recent call last):
File "C:\Program Files\JetBrains\PyCharm Community Edition 2022.2\plugins\python-ce\helpers\pydev\pydevd.py", line 1496, in _exec
pydev_imports.execfile(file, globals, locals) # execute the script
File "C:\Program Files\JetBrains\PyCharm Community Edition 2022.2\plugins\python-ce\helpers\pydev\_pydev_imps\_pydev_execfile.py", line 18, in execfile
exec(compile(contents+"
", file, 'exec'), glob, loc)
File "C:/Users/23/PycharmProjects/xls12/main.py", line 35, in
sheet = get_service_sacc().spreadsheets()
File "C:/Users/23/PycharmProjects/xls12/main.py", line 31, in get_service_sacc
creds_service = ServiceAccountCredentials.from_json_keyfile_name(creds_json, scopes).authorize(httplib2.Http())
File "C:\Users\23\PycharmProjects\xls12\venv\lib\site-packages\oauth2client\service_account.py", line 221, in from_json_keyfile_name
return cls._from_parsed_json_keyfile(client_credentials, scopes,
File "C:\Users\23\PycharmProjects\xls12\venv\lib\site-packages\oauth2client\service_account.py", line 171, in _from_parsed_json_keyfile
raise ValueError('Unexpected credentials type', creds_type,
ValueError: ('Unexpected credentials type', None, 'Expected', 'service_account')
python-BaseException
Судя по всему у вас не создан json файлик с секретками сервисного аккаунта, я описал порядок установки здесь github.com/AzzraelCode/google-sheets.
У меня есть несколько роликов о создании токенов в GAPI. Самый короткий th-cam.com/video/fxGeppjO0Mg/w-d-xo.html . Есть и другие, где более подробно с пояснениями.