我正在使用python脚本来检索和使用Google表格中的数据。到目前为止,我可以顺利登录并读取/写入单元格数据。
但是,就某些包含公式的单元格而言,python返回的值为#DIV/0
!,而不是我在电子表格本身的单元格中看到的结果。
那是为什么?我试图将“ 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)
答案 0 :(得分:0)
似乎我找到了原因。代码没有错,我在不同的电子表格上进行了测试。
当尝试获取或以其他方式使用GOOGLEFINANCE历史价格数据时,提供的值为NONE(或NULL)。这就是导致DIV / 0问题的原因。即使您的公式基于的是基于历史价格的公式,也仍然无效。
不过,返回的“实时”价格还不错。.仅不支持历史价格。
关于价格历史记录,我现在使用Alpha Vantage。在python上工作正常。
干杯!