Heim >Backend-Entwicklung >Python-Tutorial >So erhalten Sie mit gspread das richtige Datum

So erhalten Sie mit gspread das richtige Datum

王林
王林nach vorne
2024-02-09 13:00:04547Durchsuche

如何使用 gspread 获取正确的日期

Frageninhalt

Wie verwende ich Pythons Gspread, um Tabellenwerte zu erhalten?

Angenommen, es gibt eine Zelle, die wie 1/1 aussieht, weil m/d als Zellenanzeigeformat angegeben ist, aber tatsächlich 2024/1/1 enthält. Das Abrufen dieser Zelle mit get_all_values() gibt „1/1“ zurück. Ich möchte den tatsächlichen Wert „2024/1/1“, nicht den auf dem Arbeitsblatt angezeigten Wert. was mache ich?

Ich werde den Teil zur Arbeitsblatterfassung weglassen.

values ​​​​= workbook.worksheet(sheet_name).get_all_values()

Wert = Werte[1][0] # Erhalten Sie die richtige Antwort von 1/1



Probleme und Lösungen:

Aus den Bildern, Skripten und aktuellen Werten, die Sie gezeigt haben, verstehe ich, dass Sie 2024/01/01 的值作为日期对象放入单元格“a2”中。并且,单元格值显示为 1/1 in einem numerischen Format angeben.

In der aktuellen Phase, wenn der Zellenwert über die Blatt-API abgerufen wird, wird der 1/1 作为 valuerenderoption: formatted_value 的默认请求。当valuerenderoption修改为unformatted_value时,获取45292的序列号。遗憾的是,现阶段无法直接检索输入的2024/01/01-Wert abgerufen. Daher ist dies für den folgenden Prozess erforderlich.

  1. Verwenden valuerenderoption 从单元格中检索序列号:unformatted_value.
  2. Konvertieren Sie die Seriennummer in ein Datumsobjekt.
  3. Datumsformat konvertieren.

Wie wäre es mit den folgenden Änderungen, wenn sich dieser Ablauf in Ihrem Präsentationsskript widerspiegelt?

Geändertes Skript:

values = workbook.worksheet(sheet_name).get_all_values(value_render_option="UNFORMATTED_VALUE")
value = values[1][0]
date = datetime.fromtimestamp((int(value) - 25569) * 86400) # Ref: https://stackoverflow.com/a/6154953
formatted = date.strftime('%Y/%m/%d') # or date.strftime('%Y/%-m/%-d')  # or date.strftime('%Y/%#m/%#d')
print(formatted)
  • Wenn das Datumsobjekt der Zelle „a2“ 2024/01/01,且 1/1 以数字格式显示,则运行此脚本时,formatted2024/01/01 ist.

  • Verwenden Sie from datetime import datetime.

Referenz:

Das obige ist der detaillierte Inhalt vonSo erhalten Sie mit gspread das richtige Datum. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:stackoverflow.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen