J'ai une feuille de calcul dont les dates sont au format "Jan 30" etc., mais avec des valeurs de date réelles.Comment lire la valeur des données de cellules récupérées en tant que dates google sheets API
Je récupérer les données en utilisant python google Sheets API comme ceci:
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',[])
valeurs
me donne '30 Jan', je voudrais vraiment lire comme 1/30/2017
.. Comment puis-je faire?
mise à jour
Digger plus profondément dans la spreadsheets.value.get http documentation (ce qui correspond à la méthode client python api références here j'ai appris que je peux mettre l'option de valueRenderOption
comme UNFORMATTED_VALUE
..
mais quand je lance que je reçois ce nombre bizarre pour Jan 30
: 42765
w le format chapeau est ce nombre exactement? Je sais que ce n'est pas un horodatage unix b/c la conversion retourne une date non sensical
mise à jour 2: solution de contournement
ce code fonctionne, mais en utilisant le formatage de la date de python (il suppose également que l'année est l'année en cours .. mais évidemment cela ne sera pas toujours le cas):
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)
la valeur API python va chercher est ce que vous voyez sur la feuille de calcul et non la valeur sous-jacente que vous entrez à savoir les questions de format. –
mais comment puis-je connaître l'année de la date à laquelle je l'ai récupérée si je reçois simplement «Jan 30»? – abbood
Le moyen le plus simple serait de changer le format de la date. –