当前位置: 首页 > news >正文

api接口更新钉钉文档

class OperateKnowledgeBaseExcel():robot_code = ''    # agent_id = ''      #app_key = ''       #群机器人app_secret = ''    #群机器人def __init__(self,union_id, workbook_id, worksheet_id=''):self.union_id = union_idself.workbook_id = workbook_id  # 获取方式:... > 文档信息 > 表格IDself.worksheet_id =  worksheet_id # 获取方式:self.get_workbook_sheet_names() 拿到所有sheet名称和idif not self.union_id:raise Exception('请先设置union_id')def get_access_token(self):""" 获取token: https://open.dingtalk.com/document/orgapp/obtain-orgapp-token """headers = {'Content-Type': "application/x-www-form-urlencoded"}url = f"https://oapi.dingtalk.com/gettoken/?appkey={self.app_key}&appsecret={self.app_secret}"resp = requests.get(url, headers=headers)# print(resp.json()['access_token'])return resp.json()['access_token']self.access_token = self.get_access_token()def update(self, range_address, values):"""更新工作表指定区域的数据开发者文档:https://open.dingtalk.com/document/orgapp/get-cell-properties:param range_address: 更新区域,如:A2:B3:param values: 更新的数据,如:[['张三', 18], ['李四', 19]]"""url = f'https://oapi.dingtalk.com/v1.0/doc/workbooks/{self.workbook_id}/sheets/{self.worksheet_id}/ranges/{range_address}?operatorId={self.union_id}'headers = {'Content-Type': "application/json",'Host': 'api.dingtalk.com','x-acs-dingtalk-access-token': self.access_token}data = {"values": values}resp = requests.put(url, data=json.dumps(data), headers=headers)print("更新工作表区域:", resp.json())import pandas as pd
from robot.operate_knowledgebase import OperateKnowledgeBaseExcel
import json# 读取Excel文件
excel_file = r'D:\1.xlsx'
df = pd.read_excel(excel_file)workbook_id = ''   #钉钉文档表信息
union_id = ''      #用户id# 将数据转换为列表形式
values = df.values.tolist()
values = [[str(item) for item in row] for row in values]# 构造字典对象
data = values# 将字典对象转换为JSON字符串
json_data = json.dumps(data, ensure_ascii=False)worksheet_id = OperateKnowledgeBaseExcel(union_id, workbook_id).get_workbook_sheet_names()['value'][0]['id']print(json_data)
range_address = 'A2:L191'    #表的左上第一个,和右下最后一个位置
OperateKnowledgeBaseExcel(union_id, workbook_id, worksheet_id).update(range_address, json_data)

首先,在__init__方法中,需要传入union_idworkbook_id参数。其中,union_id是用户的唯一标识,workbook_id是钉钉文档表格的ID。如果没有设置union_id,将会抛出异常。

然后,get_access_token方法用于获取访问令牌。该方法发送请求到钉钉API,通过提供的app_keyapp_secret获取访问令牌,并返回响应中的access_token字段。

接下来,update方法用于更新工作表中指定区域的数据。它需要传入range_addressvalues参数,其中range_address表示要更新的区域,values是要更新的数据。该方法会构造请求URL,并发送PUT请求到钉钉API,将数据以JSON格式进行更新。

在你的代码示例中,首先读取了一个Excel文件1.xlsx,然后使用pd.read_excel方法将文件内容转换为DataFrame对象df

接着,将DataFrame对象中的数据转换为列表形式,并将每个元素转换为字符串类型。

然后,将数据列表转换为字典对象,并使用json.dumps方法将字典对象转换为JSON字符串。

之后,通过调用OperateKnowledgeBaseExcel类的实例化对象的get_workbook_sheet_names方法获取工作表的名称和ID,将第一个工作表的ID赋值给worksheet_id变量。

最后,调用OperateKnowledgeBaseExcel类的实例化对象的update方法,传入要更新的区域范围range_address和JSON数据json_data来更新工作表中的数据。

http://www.lryc.cn/news/212592.html

相关文章:

  • Android---如何同view进行渲染
  • 【LeetCode:26. 删除有序数组中的重复项 | 双指针】
  • 如何判断一个对象是不是一个空对象?
  • C/C++ “variable set but not used“的 警告问题解决方案
  • JAVA安全入门之反射
  • 【c++|opencv】一、基础操作---2.图像信息获取
  • HarmonyOS开发:探索组件化模式开发
  • 目标URL启用了不安全的HTTP方法
  • 大数据之LibrA数据库系统告警处理(ALM-12001 审计日志转储失败)
  • 大模型该被知道的技术实现-面向垂直领域
  • 赛灵思产品系列
  • [Linux C] signal 的使用
  • AI时代产品经理升级之道:ChatGPT让产品经理插上翅膀
  • 计算机网络重点概念整理-第七章 网络安全【期末复习|考研复习】
  • 【LeetCode力扣】42. 接雨水
  • 03、SpringCloud -- 动态倒计时 及 当前用户的获取(用户未登录提示其登录)
  • Mac用户心目中的四款首选原型工具
  • 国内内卷太严重,还不考虑一下在海外接单?那这几个平台你知道吗?
  • 在excel中如何打出上标、下标
  • LoongArch 五级流水线实现
  • 「Qt中文教程指南」如何创建基于Qt Widget的应用程序(四)
  • 11、SpringCloud -- 利用redis优化查询秒杀商品的数据(就是可以把商品数据先存到redis中)
  • 计算节点上iptables安全组分析
  • 香港科技大学广州|可持续能源与环境学域博士招生宣讲会—上海专场!!!(暨全额奖学金政策)
  • 有没有什么网站可以在线做视频脚本?批量制作视频,批量替换素材混剪?
  • 【python数学建模】特征值与特征向量运用
  • 什么是 CNN? 卷积神经网络? 怎么用 CNN 进行分类?(1)
  • java解决修改图片尺寸,压缩图片后出现背景变黑,图片字体模糊问题
  • jq/js检测鼠标指针移动离开页面
  • ICC2: 如何在显示GUI操作产生的命令