测试对象 | 测试项标识 | 需求标识 |
---|---|---|
组织管理 | GN-TC-US-ADMIN-ZZGL | US-ADMIN-ZZGL |
组织管理 | GN-TC-US-ADMIN-ZZGL | US-ADMIN-ZZGL |
组织管理 | GN-TC-US-ADMIN-ZZGL | US-ADMIN-ZZGL |
组织管理 | GN-TC-US-ADMIN-ZZGL | US-ADMIN-ZZGL |
组织管理 | GN-TC-US-ADMIN-ZZGL | US-ADMIN-ZZGL |
字段 | 说明 |
---|---|
测试对象 | 对应需求中的功能名称 |
测试项标识 | GN-TC+需求中的标识符 |
需求标识符 | 需求中的标识符 |
pip install python-docx
pip install openpyxl
C:\Users\Administrator>pip install python-docx
Looking in indexes: https://pypi.tuna.tsinghua.edu.cn/simple
Requirement already satisfied: python-docx in d:\python37\lib\site-packages (1.1.0)
Requirement already satisfied: lxml>=3.1.0 in d:\python37\lib\site-packages (from python-docx) (4.6.3)
Requirement already satisfied: typing-extensions in d:\python37\lib\site-packages (from python-docx) (4.7.1)
C:\Users\Administrator>pip install openpyxl
Looking in indexes: https://pypi.tuna.tsinghua.edu.cn/simple
Requirement already satisfied: openpyxl in d:\python37\lib\site-packages (3.0.5)
Requirement already satisfied: jdcal in d:\python37\lib\site-packages (from openpyxl) (1.4.1)
Requirement already satisfied: et-xmlfile in d:\python37\lib\site-packages (from openpyxl) (1.0.1)
import docx
from openpyxl import Workbook
doc = docx.Document("./XX需求.docx")
headings = []
for para in doc.paragraphs:
if para.style.name.startswith('Heading'):
headings.append(para.text)
print(headings)
['XX管理系统', '[US-ADMIN]ADMIN', '[US-ADMIN-ZZGL]组织管理',
'[US-ADMIN-ZZGL-YHGL]用户管理', '功能描述', '输入输出',
'数据流向', '[US-ADMIN-ZZGL-JGYHGL]机构用户管理', '功能描述',
'输入输出', '数据流向', ' [US-ADMIN-PZGL]配置管理',
'[US-ADMIN-PZGL-ZZJG]组织机构', '功能描述', '输入输出',
'数据流向', '[US-ADMIN-PZGL-GWXX]岗位信息', '功能描述',
'输入输出', '数据流向', ' [US-ADMIN-PZGL-JSXX]角色信息',
'功能描述', '输入输出', '数据流向', ' [US-AQGLY]SUPERADMIN',
'[US-SUPERADMIN-XTPZ]系统配置', ' [US-SUPERADMIN-XTPZ-PZGL]配置管理',
'功能描述', '输入输出', '数据流向', '[US-SUPERADMIN-YHPZ]用户配置',
'[US-SUPERADMIN-YHPZ-YHJS]用户角色', '功能描述', '输入输出',
'数据流向', '[ US-SUPERADMIN-YHPZ-QXFP]权限分配', '功能描述',
'数据流向', '[US-SUPERADMIN-YHPZ-CZMM]重置密码', '功能描述',
'输入输出', '数据流向', '[US-SUPERADMIN-RZ]日志', '功能描述',
'输入输出', '数据流向']
headings = []
for para in doc.paragraphs:
if para.style.name.startswith('Heading'):
if '[' in para.text or ']' in para.text:
headings.append(para.text)
print(headings)
['[US-ADMIN]ADMIN', '[US-ADMIN-ZZGL]组织管理',
'[US-ADMIN-ZZGL-YHGL]用户管理', '[US-ADMIN-ZZGL-JGYHGL]机构用户管理',
' [US-ADMIN-PZGL]配置管理', '[US-ADMIN-PZGL-ZZJG]组织机构',
'[US-ADMIN-PZGL-GWXX]岗位信息', ' [US-ADMIN-PZGL-JSXX]角色信息',
' [US-AQGLY]SUPERADMIN', '[US-SUPERADMIN-XTPZ]系统配置',
' [US-SUPERADMIN-XTPZ-PZGL]配置管理', '[US-SUPERADMIN-YHPZ]用户配置',
'[US-SUPERADMIN-YHPZ-YHJS]用户角色', '[ US-SUPERADMIN-YHPZ-QXFP]权限分配',
'[US-SUPERADMIN-YHPZ-CZMM]重置密码', '[US-SUPERADMIN-RZ]日志']
wb = Workbook()
sheet = wb.create_sheet("data")
# ws = wb.active
headers = ['测试对象', '测试项标识', '需求标识符']
for col_num, header in enumerate(headers, start=1):
sheet.cell(row=1, column=col_num, value=header)
c3 = []
c5 = []
c7 = []
for content in headings:
c1 = content.strip('[')
c2 = c1.split(']')[0]
c3.append(c2)
c4 = c1.split(']')[1]
c5.append(c4)
c6 = 'GN-TC-' + c2
c7.append(c6)
print(c1)
print(c3)
print(c5)
print(c7)
US-ADMIN]ADMIN
US-ADMIN-ZZGL]组织管理
US-ADMIN-ZZGL-YHGL]用户管理
US-ADMIN-ZZGL-JGYHGL]机构用户管理
[US-ADMIN-PZGL]配置管理
US-ADMIN-PZGL-ZZJG]组织机构
US-ADMIN-PZGL-GWXX]岗位信息
[US-ADMIN-PZGL-JSXX]角色信息
[US-AQGLY]SUPERADMIN
US-SUPERADMIN-XTPZ]系统配置
[US-SUPERADMIN-XTPZ-PZGL]配置管理
US-SUPERADMIN-YHPZ]用户配置
US-SUPERADMIN-YHPZ-YHJS]用户角色
US-SUPERADMIN-YHPZ-QXFP]权限分配
US-SUPERADMIN-YHPZ-CZMM]重置密码
US-SUPERADMIN-RZ]日志
['US-ADMIN', 'US-ADMIN-ZZGL', 'US-ADMIN-ZZGL-YHGL',
'US-ADMIN-ZZGL-JGYHGL', ' [US-ADMIN-PZGL', 'US-ADMIN-PZGL-ZZJG',
'US-ADMIN-PZGL-GWXX', ' [US-ADMIN-PZGL-JSXX', ' [US-AQGLY',
'US-SUPERADMIN-XTPZ', ' [US-SUPERADMIN-XTPZ-PZGL', 'US-SUPERADMIN-YHPZ',
'US-SUPERADMIN-YHPZ-YHJS', ' US-SUPERADMIN-YHPZ-QXFP',
'US-SUPERADMIN-YHPZ-CZMM', 'US-SUPERADMIN-RZ']
['ADMIN', '组织管理', '用户管理', '机构用户管理',
'配置管理', '组织机构', '岗位信息', '角色信息',
'SUPERADMIN', '系统配置', '配置管理', '用户配置',
'用户角色', '权限分配', '重置密码', '日志']
[
'GN-TC-US-ADMIN',
'GN-TC-US-ADMIN-ZZGL',
'GN-TC-US-ADMIN-ZZGL-YHGL',
'GN-TC-US-ADMIN-ZZGL-JGYHGL',
'GN-TC-US-ADMIN-PZGL',
'GN-TC-US-ADMIN-PZGL-ZZJG',
'GN-TC-US-ADMIN-PZGL-GWXX',
'GN-TC-US-ADMIN-PZGL-JSXX',
'GN-TC-US-AQGLY',
'GN-TC-US-SUPERADMIN-XTPZ',
'GN-TC-US-SUPERADMIN-XTPZ-PZGL',
'GN-TC-US-SUPERADMIN-YHPZ',
'GN-TC-US-SUPERADMIN-YHPZ-YHJS',
'GN-TC-US-SUPERADMIN-YHPZ-QXFP',
'GN-TC-US-SUPERADMIN-YHPZ-CZMM',
'GN-TC-US-SUPERADMIN-RZ']
for i, heading in enumerate(c5):
sheet.cell(row=i+2, column=1, value=heading)
for i, heading in enumerate(c7):
sheet.cell(row=i+2, column=2, value=heading)
for i, heading in enumerate(c3):
sheet.cell(row=i+2, column=3, value=heading)
# -*- coding:utf-8 -*-
# 作者:虫无涯
# 日期:2024/5/23
# 文件名称:test_word.py
import docx
from openpyxl import Workbook
doc = docx.Document("./XX需求.docx")
headings = []
for para in doc.paragraphs:
if para.style.name.startswith('Heading'):
if '[' in para.text or ']' in para.text:
headings.append(para.text)
# print(headings)
wb = Workbook()
sheet = wb.create_sheet("data")
# ws = wb.active
headers = ['测试对象', '测试项标识', '需求标识符']
for col_num, header in enumerate(headers, start=1):
sheet.cell(row=1, column=col_num, value=header)
# print(headings)
c3 = []
c5 = []
c7 = []
for content in headings:
c1 = content.strip('[')
c2 = c1.split(']')[0]
c3.append(c2)
c4 = c1.split(']')[1]
c5.append(c4)
c6 = 'GN-TC-' + c2
c7.append(c6)
# print(c1)
# print(c3)
# print(c5)
# print(c7)
for i, heading in enumerate(c5):
sheet.cell(row=i+2, column=1, value=heading)
for i, heading in enumerate(c7):
sheet.cell(row=i+2, column=2, value=heading)
for i, heading in enumerate(c3):
sheet.cell(row=i+2, column=3, value=heading)
wb.save('./data.xlsx')
以上还有优化的空间,比如:
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。