• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

python使用xlsxwriter实现有向无环图到Excel的转换

python 搞代码 4年前 (2022-01-07) 23次浏览 已收录 0个评论

这篇文章主要为大家详细介绍了python使用xlsxwriter实现有向无环图到Excel的转换,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

本程序将使用字典来构建有向无环图,然后遍历图将其转换为对应的Excel文件

最终结果如下:

代码:

 (py3) [root@7-o-1 py-dag]# cat test.py from dag import DAG dag = DAG() dag.from_dict({'a': ['b', 'c','e'], 'b': ['d','g'], 'c': ['d'], 'g':['i'], 'i':[], 'e':['gh','ox','wer'], 'gh':[], 'ox':[], 'wer':[], 'd': []}) def generate_excel(dag, row_start,col,excel_file):#参数分别为有向无环图图、开始写入的行,开始写入列,以及文件名 import xlsxwriter#导入Excel操作模块 workbook = xlsxwriter.Workbook(excel_file)#创建Excel文件 worksheet = workbook.add_worksheet('testsheet')#创建工作簿 #以下为部分格式的预定义(包含合并行格式,数字日期格式等) merge_format = workbook.add_format({ 'bold': 1, 'border': 1, 'align': 'left', 'valign': 'vcenter'}) cell_format = workbook.add_format({ 'bold': 1, 'border': 1, 'align': 'top', 'valign': 'left'}) date_format = workbook.add_format({ 'bold': 1, 'border': 1, 'align': 'top', 'valign': 'left', 'num_format': 'd mmmm yyyy'}) num_format = workbook.add_format({ 'bold': 1, 'border': 1, 'align': 'top', 'valign': 'left', 'num_format': '0.0000%'}) def get_node_leaves(node,ret = []):#用来返回一个节点的所有最终叶子结点 downs = dag.downstream(node)#先获取当前节点的下一级节点 if len(downs) 0: row_next = r_idx fo<b style="color:transparent">来源gao@!dai!ma.com搞$$代^@码!网</b>r downstream in downstreams: subnode_leaves = len(get_node_leaves(downstream,[]))#获取当前节点的所有叶子用来为下一个节点的填充确定位移 if downstream in all_leaves: subnode_leaves = 1 if col == merge_to:#对于子节点为叶子并且跨度为1应用write worksheet.write(col+str(row_next), downstream,cell_format) else:#对于子节点为叶子结点但是跨度大于1应用merge_range merge_rg = col+str(row_next) +':'+merge_to+str(row_next) worksheet.merge_range(merge_rg, downstream,merge_format) else:#子节点非叶子结点进行递归遍历 dag_visit(dag, downstream, row_next,col) #每访问一个子结点需要将row值增加方便下一个node正确填充,row的值是前一个结点的子节点个数 row_next += subnode_leaves else: print(node) head_node = dag.ind_nodes()[0] all_leaves = dag.all_leaves() dag_depth = dag.dag_depth(head_node,0) merge_to= chr(ord(col)+dag_depth)#对于合并列的终结列index dag_visit(dag, head_node, row_start,col)#传递根节点进行遍历 workbook.close() generate_excel(dag,1,'A','test.xlsx')

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持gaodaima搞代码网

以上就是python使用xlsxwriter实现有向无环图到Excel的转换的详细内容,更多请关注gaodaima搞代码网其它相关文章!


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:python使用xlsxwriter实现有向无环图到Excel的转换
喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址