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

背景

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

xmind转换效果

xmind文件

在这里插入图片描述

Excel文件

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

格式一:合并单元格布局

在这里插入图片描述

格式二:枢纽布局

在这里插入图片描述

代码实现

暂时只支持一个画布上一个父主题的情况,xmind中的notecallout等暂时不支持,会不写入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

  1. 支持标注和笔记,写入excel中
  • 3
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
web前端是指通过使用HTML、CSS、JavaScript等技术,对网站的用户界面进行设计和开发的一种角色。他们负责将网页设计师设计的页面化为浏览器可读的代码,并负责页面的交互和动态效果的实现XMind思维导图是一种用于图形化展示思维逻辑关系的工具。在web前端工作中,使用XMind思维导图文件可以起到以下几个方面的作用: 1. 项目需求分析:通过XMind思维导图,前端开发人员可以将项目的需求进行分析和梳理,将各个功能模块之间的关系清晰地呈现出来。这有助于更好地理解和把握项目的需求。 2. 页面架构规划:在前端开发过程中,XMind思维导图可以用来规划和设计网站的整体架构。通过绘制页面之间的层级结构和交互逻辑,可以帮助开发者更好地组织和安排页面的布局和内容展示。 3. 功能模块划分:在较大规模的web项目中,前端开发人员需要将不同的功能模块划分出来,分配给不同的开发人员进行开发。通过XMind思维导图,可以对功能模块进行分组和划分,从而方便团队成员之间的协作和沟通。 4. 代码逻辑设计:在前端开发中,代码的逻辑清晰与否直接影响到项目的质量和开发效率。使用XMind思维导图可以帮助前端开发人员设计和表达代码的逻辑关系,更好地组织和优化代码结构。 总之,XMind思维导图文件在web前端的工作中起到了项目需求分析、页面架构规划、功能模块划分和代码逻辑设计等多方面的作用。它可以帮助开发者更好地理解、规划和组织前端开发工作,提高开发效率和项目质量。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值