[英]How to read value of fetched cell data as date google sheets API
我有一個電子表格,其日期格式為“1月30日”等,但具有實際日期值。
我使用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
1月30日..我怎么能這樣做?
深入了解spreadsheets.value.get http文檔 (這對應於python api客戶端方法引用,我在這里了解到我可以將valueRenderOption
的選項valueRenderOption
為UNFORMATTED_VALUE
..
然而,當我跑步時,我得到Jan 30
這個奇怪的數字: 42765
這個數字到底是什么格式的? 我知道它不是一個unix時間戳b / c轉換它返回一個非感性日期
這段代碼有效,但使用python日期格式化(它還假設年份是當前年份......但顯然情況並非如此):
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)
“奇怪的數字”它被稱為“序列化日期時間值”或“日期序列值”。 顯示為日期(yyyy-mm-dd)的0值為1899-12-30
。 整數是天,分數是小時,分鍾等。
相關: 將Google電子表格日期轉換為JS Date對象?
參考文獻:
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.