gpt4 book ai didi

python - 使用 Smartsheet API (Python SDK) 更新单元格格式

转载 作者:行者123 更新时间:2023-11-30 22:22:47 25 4
gpt4 key购买 nike

我正在尝试将值和显示格式写入智能表。我通过以下方式访问该工作表:

import os
import re
import logging
import smartsheet
file_pssw = open('path2accesstoken/smsht.txt','r')
aux = file_pssw.readlines()
access_token = re.findall(r"'(.*?)'", aux[0].strip())[0]
#ID of your sheet to update
sheet_id = XXXXXXXXXXXXXXXX
# Initialize client
ss = smartsheet.Smartsheet(access_token)
# Load entire sheet
sheet = ss.Sheets.get_sheet(sheet_id, include=['format'],page_size=206)

然后我就可以访问特定单元格的格式

In[45]: sheet.rows[48].cells[3].format
Out[45]: ',,,,,,,,,22,,,,,,'

根据 Smartsheet API 文档和 Python SDK 源代码,以下代码似乎应该成功更改此单元格的格式(它至少会成功发出 PUT 请求):

In[46]: sheet.rows[48].cells[3].format = ',,,,,,,,,22,,,,,3,'
result = ss.Sheets.update_rows(sheet_id, [sheet.rows[48]])

但是,如果我随后重新加载工作表并检查此单元格的格式:

In[47]: sheet = ss.Sheets.get_sheet(sheet_id, include ['format'],page_size=206)
sheet.rows[48].cells[3].format
Out[47]: ',,,,,,,,,22,,,,,,'

单元格格式未更改(通过 UI 检查工作表可以确认这一点)。

Python SDK 中不包含此功能吗?如果是,我该如何访问它?如果不是,那么使用 requestsjson 包构建请求的最佳方法是吗?

最佳答案

这改编自 docs 中的更新行示例包括格式属性。值得注意的是,要更新单元格的格式,您还必须包含 value 属性。如果您不想更改单元格的当前值,则需要使用该值。

请注意,构建单元格对象格式时前面有一个下划线。我还应该指出,在此过程中,我正在为请求构造一个新的单元对象和一个新的行对象,而不是修改任何现有对象。

# Build new cell value

new_cell = ss_client.models.Cell()
new_cell.column_id = <COLUMN_ID>
new_cell.value = 2
new_cell._format = ",,,,,,,,27,,,,,,,"

# Build the row to update

new_row = ss_client.models.Row()
new_row.id = <ROW_ID>
new_row.cells.append(new_cell)

# Update rows

updated_row = ss_client.Sheets.update_rows(
<SHEET_ID>, # sheet_id
[new_row])

关于python - 使用 Smartsheet API (Python SDK) 更新单元格格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48216697/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com