钉钉群通知如何发送excel表格?发送消息里面表格指定单元格想要上色怎么办?
评论
收藏

钉钉群通知如何发送excel表格?发送消息里面表格指定单元格想要上色怎么办?

经验分享
水苏—刀刀侠
2024-08-12 13:02·浏览量:954
水苏—刀刀侠
官方发布于 2024-08-08 15:30更新于 2024-08-12 13:02954浏览

一、背景


 需求描述:发送excel表格内容可以截图,但是想要用markdown发送表格内容,并且还要设置格式就比较麻烦了。

 技术定位:初级/中级

 注意:钉钉手机端显示markdown格式的文本有问题,兼容性问题。 https://developer.aliyun.com/ask/601015

  示例效果:



二、开发步骤

 整体思路:

  • 读取excel中需要发送出去的区域表格数据
  • 将读取的数据写入数据表格
  • 循环数据表格判断哪些数据需要标红或者设置其他格式,这个时候覆盖写入
  • 读取处理好的数据表格
  • 然后通过二维列表转markdown的模块,将读取的数据表格转为markdown的格式
  • 最后发送群聊消息即可


 整体逻辑:

二维列表转markdown格式

# 使用提醒:
# 1. xbot包提供软件自动化、数据表格、Excel、日志、AI等功能
# 2. package包提供访问当前应用数据的功能,如获取元素、访问全局变量、获取资源文件等功能
# 3. 当此模块作为流程独立运行时执行main函数
# 4. 可视化流程中可以通过"调用模块"的指令使用此模块

import xbot
from xbot import print, sleep
from .import package
from .package import variables as glv

def list_to_markdown(table):
    # Calculate the maximum length of each column
    max_lens = [max(len(str(item)) for item in col) for col in zip(*table)]
    
    # Create the header row
    header = ' | '.join(f"{str(item).ljust(max_lens[i])}" for i, item in enumerate(table[0]))
    separator = ' | '.join('-' * max_lens[i] for i in range(len(max_lens)))
    
    # Create the data rows
    rows = []
    for row in table[1:]:
        rows.append(' | '.join(f"{str(item).ljust(max_lens[i])}" for i, item in enumerate(row)))
    
    # Combine header, separator, and rows
    markdown_table = f"{header}\n{separator}\n" + "\n".join(rows)
    
    return markdown_table

def main(args):
    pass

 关键点注意:

 钉钉markdown相关格式说明

三、效果展示




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