「Jan 30」などとフォーマットされた日付を持つスプレッドシートがありますが、実際の日付値があります。フェッチされたセルデータの値を日付として読み取る方法google sheets API
私はそうのようなpython google Sheets APIを使用してデータをフェッチ:
def get_spreadsheet_sheets(service, spreadsheetId):
spreadsheet = service.spreadsheets().get(spreadsheetId=spreadsheetId).execute()
dateCell = "C15"
for sheet in spreadsheet['sheets']:
sheetTitle = sheet['properties']['title']
rangeName = "%s!%s" % (sheetTitle, dateCell)
result = service.spreadsheets().values().get(
spreadsheetId=spreadsheetId, range=rangeName).execute()
values = result.get('values',[])
値は私に「1月30日」を与え、私はそれをどのように行うことができます。..実際1/30/2017
としてそれを読みたいですか?私は私が得ることを実行したときに、私はしかし... UNFORMATTED_VALUE
として
をvalueRenderOption
のオプションを置くことができることを学んだのpython APIクライアントのメソッド参照に対応spreadsheets.value.get http documentation(hereに
更新
ディガーJan 30
ため、この不思議数:42765
ワット帽子の形式はその番号ですか? (それはまた、年は現在の年であることを前提とし、回避策
は、このコードは動作しますが、Pythonの日付の書式を使用して:私はそれがB/Cに変換する
アップデート2無意味日付を返します。UNIXタイムスタンプではないことを知っています..しかし、明らかにそれは常に)の場合ではありません。
def get_spreadsheet_sheets(service, spreadsheetId):
spreadsheet = service.spreadsheets().get(spreadsheetId=spreadsheetId).execute()
dateCell = "C15"
for sheet in spreadsheet['sheets']:
sheetTitle = sheet['properties']['title']
rangeName = "%s!%s" % (sheetTitle, dateCell)
result = service.spreadsheets().values().get(
spreadsheetId=spreadsheetId, range=rangeName).execute()
values = result.get('values',[])
dateStr = "%s %s" % (values[0][0], datetime.date.today().year)
cellDate = datetime.datetime.strptime(dateStr, '%b %d %Y')
print(cellDate)
値は、あなたが入力すなわちフォーマット事項スプレッドシートではない根本的な価値に見たものです。 –
しかし、もし私が単に 'Jan 30'を取得すれば、私はそれをフェッチする日付の年を知ることができますか? – abbood
最も簡単な方法は、日付の書式を変更することです。 –