使用API和Python设置Google Sheets单元格格式

8 投票
4 回答
13543 浏览
提问于 2025-04-15 22:31

我正在使用gd_client.UpdateCell来更新谷歌表格中的值,想知道有没有办法同时更新单元格的格式,比如颜色、边框、文字大小等等。

这可以做到吗?

有没有相关的示例或者其他文档可以参考?

任何能帮助我入门的资料都非常好。

4 个回答

6

我觉得现在这个功能是做不到的。目前的API(包括列表和单元格API)只允许你修改数据,但不能改变格式。

所有的API都在这里描述。里面没有关于格式的内容:

很多人在讨论组里请求这个功能,但从来没有得到谷歌的回复:

11

(2017年2月)2016年Google I/O大会开始,开发者们可以通过最新的API(版本4)来格式化Google Sheets中的单元格。下面是一个简单的Python示例,它将第一行的文字加粗(假设文件ID是SHEET_ID,而SHEETS是API服务的入口):

DATA = {'requests': [
    {'repeatCell': {
        'range': {'endRowIndex': 1},
        'cell':  {'userEnteredFormat': {'textFormat': {'bold': True}}},
        'fields': 'userEnteredFormat.textFormat.bold',
    }}
]}

SHEETS.spreadsheets().batchUpdate(
        spreadsheetId=SHEET_ID, body=DATA).execute()

我还制作了一个关于这个主题的开发者视频,如果你觉得有帮助的话可以看看(见下文)。顺便说一下,你不仅限于使用Python,你可以用任何支持的语言来调用Google API客户端库

最新的Sheets API提供了一些旧版本没有的功能,主要是让开发者可以像使用用户界面一样,通过编程的方式访问表格(比如冻结行、单元格格式化、调整行列大小、添加数据透视表、创建图表等等)。如果你对这个API还不太熟悉,我制作了一些视频,里面有更“实际”的示例:

正如你所看到的,Sheets API主要是用于上面提到的文档相关功能,但如果你需要进行文件级别的操作,比如导入/导出、复制、移动、重命名等,建议使用Google Drive API

撰写回答