使用API和Python设置Google Sheets单元格格式
我正在使用gd_client.UpdateCell来更新谷歌表格中的值,想知道有没有办法同时更新单元格的格式,比如颜色、边框、文字大小等等。
这可以做到吗?
有没有相关的示例或者其他文档可以参考?
任何能帮助我入门的资料都非常好。
4 个回答
6
我觉得现在这个功能是做不到的。目前的API(包括列表和单元格API)只允许你修改数据,但不能改变格式。
所有的API都在这里描述。里面没有关于格式的内容:
- http://code.google.com/apis/spreadsheets/data/3.0/reference.html
- http://code.google.com/apis/documents/docs/3.0/reference.html
很多人在讨论组里请求这个功能,但从来没有得到谷歌的回复:
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还不太熟悉,我制作了一些视频,里面有更“实际”的示例:
- 将SQL数据迁移到表格,还有代码深入解析的文章
- 使用Sheets API格式化单元格,以及代码深入解析的文章
- 从表格数据生成幻灯片,还有代码深入解析的文章
正如你所看到的,Sheets API主要是用于上面提到的文档相关功能,但如果你需要进行文件级别的操作,比如导入/导出、复制、移动、重命名等,建议使用Google Drive API。