将Xmind用例转成Excel文件代码记录

本文记录了如何通过Python脚本将Xmind文件转换为Excel文件的过程,展示了转换前后的文件效果,并提供了具体的转换代码。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

效果如下:

源xmind文件:

转换后Excel文件如下:

代码如下:

import xmindparser
import json
import xlwt

index = 1
col = 0

xmindparser.config = {
    'showTopicId': False,
    'hideEmptyValue': True,
    'showStructure': False,
    'showRelationship': True
}

# 读取XMind文件
def readXmindFile(filePath):
    print(filePath)
    content = xmindparser.xmind_to_dict(filePath)
    print(content)
    print_json(content[0])
    return content

def print_json(data):
    print(json.dumps(data, sort_keys=True, indent=4, separators=(', ', ': '), ensure_ascii=False))


# 创建xlsx文件
def getCaseXlsxFile(filename):
    workBook = xlwt.Workbook(filename)
    sheet = workBook.add_sheet('工作表', cell_overwrite_ok=True)
    sheet.write(0, 0, '文件夹')
    sheet.write(0, 1, '用例标题')
    sheet.write(0, 2, '优先级')
    sheet.write(0, 3, '用例类型')
    sheet.write(0, 5, '冒烟用例')
    sheet.write(0, 6, '前置条件')
    sheet.write(0, 7, '操作步骤')
    sheet.write(0, 8, '预期结果')

    return (workBook,sheet)

# 写入用例
def writeCases(filePath, workBook, sheet, fileName):
    content = readXmindFile(filePath)

    topic = content[0]['topic']

    # for func in topic['topics']:
    #     try:
    #         if len(func['topics']) > 0:
    #             titles = func['topics']
    #             writeTitle(func['title'], sheet, row)
                # for title in titles:
                #     print(title)
                #     writeTitle(title['title'], sheet, row)
                #     try:
                #         if len(title['topics']) > 0:
                #             steps = title['topics']
                #             for step in steps:
                #                 print(step)
                #                 writeTitle(step['title'], sheet, row)
                #                 try:
                #                     if len(step['topics']) > 0:
                #                         results = step['topics']
                #                         for result in results:
                #                             print(result)
                #                             writeTitle(result['title'], sheet, row)
                #                     else:
                #                         break
                #                 except:
                #                     break
                #         else:
                #             break
                #         row += 1
                #     except:
                #         break
    findData(topic['topics'], sheet)
        #     else:
        #         break
        # except:
        #     break
    workBook.save(fileName)

# 读取xmind数据
def findData(topics, sheet):
    print(topics)
    global index
    global col

    for topic in topics:
        print(topic)
        try:
            if len(topic['topics']) > 0:
                titles = topic['topics']
                print(topic['title'])
                writeTitle(topic['title'], sheet, index)
                findData(titles, sheet)
        except:
            print('title' + topic['title'])
            writeTitle(topic['title'], sheet, index)
            index += 1


# 将数据写入Excel
def writeTitle(title, sheet, row):
    if '预期结果' in title:
        sheet.write(row, 8, title[5:len(title)])
    elif '前提' in title:
        sheet.write(row, 6, title[3:len(title)])
    elif '步骤' in title:
        sheet.write(row, 7, title[3:len(title)])
    elif '级别' in title:
        sheet.write(row, 2, title[3:len(title)])
    elif '是否冒烟' in title:
        sheet.write(row, 5, title[5:len(title)])
    elif '名称' in title or '标题' in title:
        sheet.write(row, 1, title[3:len(title)])
    elif '验证' in title:
        sheet.write(row, 10, title)
    # else:
    #     sheet.write(row, col, title)
    sheet.write(row, 3, '功能测试')

if __name__ == '__main__':
    filePath = '测试.xmind'

    fileName = '测试.xlsx'

    data = getCaseXlsxFile(fileName)
    wb = data[0]
    sheet = data[1]
    writeCases(filePath, wb, sheet, fileName)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值