2017-02-14 4 views
2

「Jan 30」などとフォーマットされた日付を持つスプレッドシートがありますが、実際の日付値があります。フェッチされたセルデータの値を日付として読み取る方法google sheets API

enter image description here

私はそうのような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 documentationhere

深い

更新

ディガーJan 30ため、この不思議数:42765

enter image description here

ワット帽子の形式はその番号ですか? (それはまた、年は現在の年であることを前提とし、回避策

は、このコードは動作しますが、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) 

+1

値は、あなたが入力すなわちフォーマット事項スプレッドシートではない根本的な価値に見たものです。 –

+0

しかし、もし私が単に 'Jan 30'を取得すれば、私はそれをフェッチする日付の年を知ることができますか? – abbood

+1

最も簡単な方法は、日付の書式を変更することです。 –

答えて

2

それは、「シリアル化された日付時刻値」または「日付のシリアル値」と呼ばれています「奇妙な番号」。日付(yyyy-mm-dd)として表示される0の値は1899-12-30です。 Converting Google spreadsheet date into a JS Date object?

参考文献:整数は、画分を時間、分、など

関連日間されている

H/Tは、PythonのAPIは、フェッチSam Berlin

+0

もご覧ください:[DateTimeシリアル番号](https://developers.google.com/sheets/api/guides/concepts#datetime_serial_numbers)、[GoogleシートAPI V4(Java)セル内の日付追加](http:// stackoverflow.com/questions/37986171/google-sheet-api-v4java-append-date-in-cells/37993497#37993497)。 –

+0

@SamBerlin:どうもありがとうございました。 –

+0

「Googleスプレッドシート> API v4ガイド」へのリンクがアップしました。何らかの理由で、これを見つけるのは非常に難しく、自分自身のセクションにはありませんでした。 – chutz

関連する問題