飞书在线表格_删除重复行
评论
收藏

飞书在线表格_删除重复行

经验分享
伊夫
2024-05-06 17:00·浏览量:3297
伊夫
发布于 2024-01-30 20:38更新于 2024-05-06 17:003297浏览

石化问题场景如下:

   实现飞书在线表格删除重复行,没有对应指令


冲呀解决方案:

方案一、坐标+元素+键盘

     实现步骤:

        指令截图:

       

       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()

       忙碌中实现效果:

   

收藏
全部评论1
最新
发布评论
评论