

问题场景如下:
实现飞书在线表格删除重复行,没有对应指令

解决方案:
方案一、坐标+元素+键盘
实现步骤:

指令截图:

ps. 此方法实现较为容易,但是需要依赖网页,且用坐标点击,通用性不强~~
方案二和方案三不需要通过网页,较为稳定且通用
ps.表格内数据需要带标题行
方案二、官方指令
通过官方指令倒序读取数据实现去重

方案三、python代码
通过飞书服务端api接口实现去重
需要准备的数据:
1.app_id
2.app_secret
app_id 以及 app_secrect获取方法:

3.spreadsheet_token
4.sheet_id
spreadsheet_token 以及 sheet_id获取方法:https://open.feishu.cn/document/server-docs/docs/sheets-v3/overview
5.填写去重的列号column:如:A
python代码:
1.安装requests库(已安装请忽略)
2.填写完5个数据后直接运行代码即可完成去重
import requests
import json
# 要获取的信息:
# 1、Appid
app_id = '此处填写app_id'
# 2、AppSecret
app_secret = '此处填写app_secret'
# 3、spreadsheet_token
spreadsheet_token = '此处填写spreadsheet_token'
# 4、sheet_id
sheet_id = '此处填写sheet_id'
# 5、选择需要去重的列号
column = '此处填写要去重的列号'
def Delete_duplicate_lines():
# =======获取tenant_access_token=======
url = 'https://open.feishu.cn/open-apis/auth/v3/tenant_access_token/internal'
headers = {'content-type': 'application/json; charset=utf-8'}
data = {
"app_id": f'{app_id}',
"app_secret": f'{app_secret}'
}
res = requests.post(url, data=json.dumps(data), headers=headers)
res = res.json()
tenant_access_token = res['tenant_access_token']
# =======读取列数据=======
data_range = f'{column}:{column}'
url = f'https://open.feishu.cn/open-apis/sheets/v2/spreadsheets/{spreadsheet_token}/values/{sheet_id}!{data_range}'
headers = {
'Authorization':f'Bearer {tenant_access_token}',
'content-type': 'application/json; charset=utf-8'
}
res = requests.get(url, headers=headers)
res = res.json()
res = res['data']['valueRange']['values']
list_data =[num for sublist in res for num in sublist]
del list_data[0]
for index in range(len(list_data), 1, -1):
last_data = list_data[-1]
del list_data[-1]
if last_data in list_data:
# =======删除行=======
url = f'https://open.feishu.cn/open-apis/sheets/v2/spreadsheets/{spreadsheet_token}/dimension_range'
headers = {
'Authorization': f'Bearer {tenant_access_token}',
'content-type': 'application/json; charset=utf-8'
}
data = {
"dimension": {
"sheetId": f'{sheet_id}',
"majorDimension": "ROWS",
"startIndex": f'{index+1}',
"endIndex": f'{index+1}'
}
}
res = requests.delete(url, headers=headers,data=json.dumps(data))
if __name__ == '__main__':
Delete_duplicate_lines()
实现效果:
