Python3实现转xmind思维导图文件到excel

您所在的位置:网站首页 Xmind复制到excel Python3实现转xmind思维导图文件到excel

Python3实现转xmind思维导图文件到excel

2024-03-07 22:41| 来源: 网络整理| 查看: 265

文章目录 背景xmind转换效果xmind文件Excel文件格式一:合并单元格布局格式二:枢纽布局 代码实现可执行文件下载地址TODO

背景

在一些快速迭代的团队中,测试工程师没有时间整理完整的测试用例,或者没有专门的测试用例管理工具(比如testlink,禅道,JIRA等),一些测试工程师会使用xmind的思维导图来记录测试用例。这种方式虽然可以很清晰的看到测试点,但是弊端就是不方便标记结果。 我就在团队中遇到了使用xmind来记录测试用例的情况,在执行这些用例的时候就想要转成excel,方便在测试过程中随时标记结果,生成测试报告。 但是,xmind转excel需要会员,那对于我这种本不富裕的测试同学来说,就只好自力更生,自己转。

xmind转换效果 xmind文件

在这里插入图片描述

Excel文件

支持一下两种格式,默认使用格式一。

格式一:合并单元格布局

在这里插入图片描述

格式二:枢纽布局

在这里插入图片描述

代码实现

暂时只支持一个画布上一个父主题的情况,xmind中的note,callout等暂时不支持,会不写入excel中。以下代码转xmind到excel时会按照合并单元格的样式展示。

#!/usr/bin/env python # -*- coding: utf-8 -*- from xmindparser import xmind_to_dict from openpyxl import Workbook, load_workbook from openpyxl.styles import Alignment def write_sub_note_to_excel(datadict, cur='', excel=None): ''' 把每个最终节点,带路径写入excel :param datadict: :param cur: :param excel: :return: ''' for k, v in datadict.items(): if type(v) is dict: write_sub_note_to_excel(v, cur, excel) elif isinstance(v, list): for i in v: if isinstance(i, dict): write_sub_note_to_excel(i, cur, excel) else: if not 'topics' in datadict and k == 'title': wb = load_workbook(excel) ws = wb.active ws.append((cur + '-' + v).split('-')[1:]) wb.save(excel) print("{0} : {1}".format(k, cur + '-' + v)) cur = cur + '-' + v def format_excel(excelfile): ''' 调整excel格式,做合并单元格 :param excelfile: :return: ''' wb = load_workbook(excelfile) ws = wb.active for cols in ws.iter_cols(max_row=ws.max_row, max_col=ws.max_column): srow = cols[0] for col in cols[1:]: if col.value == srow.value: if col == cols[ws.max_row - 1] and col.value is not None: ws.merge_cells(':'.join([srow.coordinate, col.coordinate])) srow.alignment = Alignment(horizontal="center", vertical="center") else: if srow.value is not None: # print(':'.join([srow.coordinate, col.column_letter + str(col.row - 1)])) ws.merge_cells(':'.join([srow.coordinate, col.column_letter + str(col.row - 1)])) srow.alignment = Alignment(horizontal="center", vertical="center") srow = col wb.save(excelfile) if __name__ == '__main__': import sys xmind_file = sys.argv[1] # 输入D:\XX测试用例.xmind xmind_dict = xmind_to_dict(xmind_file) print(xmind_dict) # 生成的excel文件名 wb = Workbook() excelfile = xmind_file.replace('.xmind', '.xlsx') wb.save(excelfile) wb = load_workbook(excelfile) ws = wb.active # xmind解析后的dict格式如下: # [{'title': '画布 1', 'topic': {'title': 'XX测试用例', 'topics': []}}] # 所以需要忽略到第一层的 '画布 1',直接从topic里内容开始转 top_topic = xmind_dict[0]['topic'] write_sub_note_to_excel(top_topic, excel=excelfile) # 需要格式二:枢纽布局来逐条查阅的小伙本,直接把下面这行format_excel注释掉即可 format_excel(excelfile) 可执行文件下载地址

给不会Python3或者不想尝试的小伙伴也准备了个可以在Windows10上运行的可执行文件。打开CMD,执行exe即可。

D:\>xmind2excel.exe XX测试用例.xmind

链接:https://pan.baidu.com/s/1HOtUcX3dr8msntEXGMe1gw 提取码:kcej

TODO 支持标注和笔记,写入excel中


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3