我一直在尝试在python中配置谷歌电子表格的单元格水平对齐格式。我已经阅读了原始的谷歌开发者信息,也检查了其他面临同样问题的人的例子,但没有一个适用于我的例子。下面的代码是我用来配置电子表格请求主体的代码。我要做的是创建一个新的电子表格,其中所有单元格的水平对齐都居中。因此,当用户在任何单元格中键入任何内容时,它将自动以居中. 任何建议吗?
spreadsheet_body = {
'properties': {
# spreadsheet name
'title': sheet_name,
"defaultFormat":{
"horizontalAlignment":'CENTER'
}
},
'sheets': [{
'properties': {
# worksheet name
'title': 'Φύλλο1',
'gridProperties': {
# rowcolumn number
'rowCount': 100,
'columnCount': 20
},
},
'data': [{'rowData': [{'values': header_row}]}] # Added
}
]
}
request = service.spreadsheets().create(body=spreadsheet_body)
response = request.execute()
我相信你的目标是这样的。
- 当使用电子表格方法创建新的电子表格时。在创建表格API时,你需要设置单元格的水平对齐方式。
- 你想用python的googleapi实现这个。
问题和解决方法:
不幸的是,电子表格属性的"defaultFormat":{"horizontalAlignment":'CENTER'}
不能使用。这是当前的规范。这已经提到了ziganotschka的答案。
当我看到你的脚本时,创建的新电子表格有一个表。在这种情况下,当创建此工作表时,可以将工作表中所有单元格的水平对齐设置为CENTER
。但是在本例中,当创建新工作表时,将使用默认格式。请小心点。所以这个答案是一个变通方法。
当这个解决方法在脚本中反映出来时,它变成如下所示:
修改脚本:
rowCount = 100
columnCount = 20
rowData = []
for r in range(1, rowCount):
temp = []
for c in range(0, columnCount):
temp.append({'userEnteredFormat': {'horizontalAlignment': 'CENTER'}})
rowData.append({'values': temp})
hlen = len(header_row)
if hlen < columnCount:
for c in range(0, columnCount - hlen):
header_row.append({'userEnteredFormat': {'horizontalAlignment': 'CENTER'}})
rowData.insert(0, {'values': header_row})
spreadsheet_body = {
'properties': {
# spreadsheet name
'title': sheet_name
},
'sheets': [{
'properties': {
# worksheet name
'title': 'Φύλλο1',
'gridProperties': {
# rowcolumn number
'rowCount': rowCount,
'columnCount': columnCount
},
},
'data': [{'rowData': rowData}]
}]}
request = service.spreadsheets().create(body=spreadsheet_body)
response = request.execute()
参考:- 方法:spreadsheets.create
在资源SpreadsheetProperties下指定:
defaultFormat
该字段为只读。
因此,不幸的是,它是不可能创建一个电子表格API,其中所有单元格自动居中-就像它是不可能通过UI做到这一点。