1 回答

TA貢獻(xiàn)1799條經(jīng)驗(yàn) 獲得超6個贊
如當(dāng)前所寫,您的conceptnum()
函數(shù)正在執(zhí)行此操作:
for each row in the sheet -> for each cell in the current row -> ... delete the current row
因此,如果您的工作表包含多于一列,您的腳本將:
獲取工作表的第一行
獲取正在處理的行的第一個單元格的值
從工作表中刪除行
獲取正在處理的行的第二個單元格的值
從工作表中刪除行->此刪除行請求(以及正在處理的行中每個附加列/單元格的后續(xù)請求)將返回“未找到”錯誤-因?yàn)樵撔胁辉俅嬖谟诠ぷ鞅碇?您在讀取第一個單元格值后將其刪除。
假設(shè)您的目標(biāo)是讀取工作表第一行的第一個單元格中的值,然后從工作表中刪除該行,這是一個可以執(zhí)行此操作的函數(shù) - 請注意我已經(jīng)更改了函數(shù)名稱和變量名遵循 Python 風(fēng)格約定(小寫帶下劃線):
def concept_num():
# get sheet
my_sheet = smartsheet_client.Sheets.get_sheet(sheet_id)
# initialize row_id
row_id = None
for row in my_sheet.rows:
# get the ID of the current (first) row
row_id = row.id
# get the Cell object for the first cell of the current (first) row
cell = row.cells[0]
# set labels
label1['text'] = int(cell.value)
label2['text'] = 'Your concept number is created'
# exit the 'for' loop (so that only the first row is processed)
break
# delete the row that was just processed
if row_id != None:
smartsheet_client.Sheets.delete_rows(sheet_id, row_id)
else:
label1['text'] = 'n/a'
label2['text'] = 'Concept number not found.'
編輯 2020 年 4 月 13 日:
您需要在每次concept_num函數(shù)運(yùn)行時獲取工作表——以便my_sheet反映工作表的當(dāng)前內(nèi)容(即,不再包含在函數(shù)之前運(yùn)行時被刪除的行)。我已經(jīng)相應(yīng)地更新了上面的代碼片段(即,在函數(shù)頂部添加了get sheetconcept_num調(diào)用)。如果單擊“創(chuàng)建”按鈕else時工作表不再包含數(shù)字,我還在代碼片段的末尾添加了代碼(使用)來相應(yīng)地更新標(biāo)簽。
添加回答
舉報