我一直在尝试用 Python 配置谷歌电子表格的单元格水平对齐格式。我已阅读原始谷歌开发者信息,也查看了面临相同问题的人提供的其他示例,但没有一个适用于我的示例。以下代码是我用来配置电子表格请求主体的代码。我想要做的是创建一个新的电子表格,其中所有单元格的水平对齐都居中。因此,当用户在任何单元格中输入任何内容时,它将自动居中。有什么建议吗?
spreadsheet_body = { 'properties': { # spreadsheet name 'title': sheet_name, "defaultFormat":{ "horizontalAlignment":'CENTER' } }, 'sheets': [{ 'properties': { # worksheet name 'title': 'Φύλλο1', 'gridProperties': { # row\column number 'rowCount': 100, 'columnCount': 20 }, }, 'data': [{'rowData': [{'values': header_row}]}] # Added } ] } request = service.spreadsheets().create(body=spreadsheet_body) response = request.execute()
我相信您的目标如下。
不幸的是,电子表格属性无法使用。这是当前规范。ziganotschka的回答"defaultFormat":{"horizontalAlignment":'CENTER'}中已经提到了这一点。
"defaultFormat":{"horizontalAlignment":'CENTER'}
当我看到您的脚本时,创建的新电子表格只有一张表。在这种情况下,创建此表时,可以将表中所有单元格的水平对齐方式设置为CENTER。但在这种情况下,创建新表时,将使用默认格式。请小心这一点。所以这个答案是一种解决方法。
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': { # row\column number 'rowCount': rowCount, 'columnCount': columnCount }, }, 'data': [{'rowData': rowData}] }]} request = service.spreadsheets().create(body=spreadsheet_body) response = request.execute()