簡體   English   中英

如何讀取獲取的單元格數據的值作為日期谷歌工作表API

[英]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的選項valueRenderOptionUNFORMATTED_VALUE ..

然而,當我跑步時,我得到Jan 30這個奇怪的數字: 42765

在此輸入圖像描述

這個數字到底是什么格式的? 我知道它不是一個unix時間戳b / c轉換它返回一個非感性日期

更新2:解決方法

這段代碼有效,但使用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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM