使用gspread设置Google Sheets日期格式无效,文本格式正常求解决
问题原因及解决方案
核心原因
你写入单元格的是字符串类型的日期文本,而非Google Sheets能识别的日期数据类型。Google Sheets的日期格式仅对单元格内的日期型数值生效,文本内容即便格式符合日期样式,也不会被识别为日期,自然无法应用日期格式规则。
解决方法
有两种常用方式可以修复:
1. 写入datetime对象
直接传递Python的datetime对象,gspread会自动将其转换为Google Sheets的日期类型:
from datetime import datetime sh = gc.create("new") ws = sh.get_worksheet(0) # 传入datetime对象 ws.update("A1", datetime(2023, 10, 20)) ws.format( "A1", { "numberFormat": { "pattern": "dd-mmm-yyyy", "type": "DATE", }, "textFormat": {"bold": True}, }, )
2. 使用value_input_option参数指定输入类型
如果需要传入字符串格式的日期,可以通过value_input_option='USER_ENTERED'让Google Sheets自动解析内容为对应数据类型:
sh = gc.create("new") ws = sh.get_worksheet(0) # 指定输入选项为USER_ENTERED,让表格自动识别日期 ws.update("A1", "20/10/2023", value_input_option='USER_ENTERED') ws.format( "A1", { "numberFormat": { "pattern": "dd-mmm-yyyy", "type": "DATE", }, "textFormat": {"bold": True}, }, )
内容的提问来源于stack exchange,提问作者mrgou
相关产品推荐
相关产品推荐

