Я работаю над сценарием Python для извлечения и работы с данными из Google Sheets.Пока что я могу войти без проблем и читать / записывать данные ячейки.
Однако, что касается некоторых ячеек, содержащих формулы, значение, возвращаемое Python, равно #DIV/0
!, вместо результата Iувидеть в ячейке самой таблицы.
Почему это?Я попытался указать параметр «Value Render Option» как FORMATTED_VALUE
, UNFORMATTED_VALUE
или FORMULA
, но ничего не работает.
Например, одна ячейка содержит формулу IF, которая отображается как "«Положительный» или «Отрицательный» в самом листе.Я хочу, чтобы Python восстановил это значение.Вместо этого я получаю #DIV/0!
, когда я распечатываю значения.То же самое касается вычислений, которые я делаю на самом листе (который дает правильный результат при просмотре листа в Интернете).
Мой сценарий похож на примеры на страницах учебника Google.
Спасибоза помощь начинающему!Ура!
Вот сценарий:
from __future__ import print_function
from pprint import pprint
import os.path
from googleapiclient.discovery import build
from google_auth_oauthlib.flow import InstalledAppFlow
from google.auth.transport.requests import Request
from googleapiclient import discovery
import pickle
SCOPES = ['https://www.googleapis.com/auth/spreadsheets.readonly']
spreadsheet_id = '1-V95KxzJCPglRa90KnvnHBvY2doffeAxuRrEBEA0mHg'
range_ = 'Finance_3!A1:D30'
credentials = None
if os.path.exists('token.pickle'):
with open('token.pickle', 'rb') as token:
credentials = pickle.load(token)
service = discovery.build('sheets', 'v4', credentials=credentials)
value_render_option = 'FORMATTED_VALUE'
date_time_render_option = 'FORMATTED_STRING'
request = service.spreadsheets().values().get(spreadsheetId=spreadsheet_id, range=range_, valueRenderOption=value_render_option, dateTimeRenderOption=date_time_render_option)
response = request.execute()
pprint(response)