図は、Pythonを使用して、脳が(a)の例ではExcelに変換xmind

       最近の需要につながった、脳は、直接Excelのユースケース図に変換を導入し、使用する他の人のために、GUIのexe実行可能ファイルに変換することができxmind。

       私はこの機能を実装するためのPythonを使用したいので、そのためのPythonのPythonに変換するために、まず、、、最初のヘアカットのアイデアに精通している利用可能なデータ形式をxmind、ちょうど、xmindparserライブラリは、このことを行うことができた、扱いやすいですxlwtライブラリXLSファイルに記述され、その後、Pythonは、書き込みにGUI GUIインターフェイスライブラリTkinterのを来て、最後にpyInstallerのでパッケージ化します。

        2つのPYファイルを書き込むための計画は、ファイル書き込みExcelは、インポート、インポートおよびフォーマットへのより多くのフィールドは、厳格な要件があるので、我々は判断して、そう、Excelのロジックはまだ少し複雑です書き込み、ファイルのGUIインターフェイスを書きますxmindファイルは、書き込みテスト、テストケースのテストタイトルテストケースの実行ステップの要件の数をテストするための適切な形式は、結果は事前の試験​​条件は、適切なフォーマットに従ってください期待しています。フォーマット

   xmindparserによってフォーマットは、そのフォーマットに加えて、Pythonの辞書のリストで解析されました

 
ここから私たちは、コンテンツのタイトルを望んで我々が使用xmind形式、タイトル、トピック、うち二つの属性を分析することができ、コンテンツは、ここに二つの機能をパッケージ化することができるトピックの数、私が投稿コードですなぜならXLS形式の要件と同じではありません
ので、特定のロジックだけでなく、具体的書き込みに、私は書き込みに私たちのインポートツールのインストール要件よ、あなたはあなたの参照を与えることができます
xmindparserインポートxmind_to_dictから
輸入再
輸入xlwt

クラスxmind_to_xls():
    デフxmind_num(自己、値):
        「」「」「xmindタイトルの数を取得します」
        試してみてください。
            return len(value['topics'])
        except KeyError:
            return 0

    def xmind_title(self,value):
        """获取xmind标题内容"""
        return value['title']

    def  xmind_cat(self,filename):
        '''调试函数,打印内容用的'''
        self.out = xmind_to_dict(filename)
        self.story = self.out[0]['topic']['topics']
        self.num=len(self.story)
        print(self.out)
        print(self.out[0]['topic']['title'])
        return self.story,self.num

    def write_excel(self,xmind_file,servicename='',editionname='',performer=''):
        '''生成excel文件函数'''
        self.f=xlwt.Workbook()
        self.sheet1 =self.f.add_sheet('sheet1',cell_overwrite_ok=True)
        self.row0 = ["storyid", '需求名称', '测试用例名称', '执行步骤', '预期结果', '服务名称', '版本', '执行人员']
        #生成第一行
        for i in range(0,len(self.row0)):
            self.sheet1.write(0,i,self.row0[i])
        self.out = xmind_to_dict(xmind_file)
        self.xls_name=self.out[0]['topic']['title']
        self.story = self.out[0]['topic']['topics']
        self.storynum = len(self.story)
        j=1 #用例计算器
        z = 0  # 用例结果数计数器
        for i in range(0, self.storynum):
            self.storyname = self.story[i]['title']
            print(self.storyname)
            self.regex_str = ".*[\[【](.+?)[\]】].*"
            self.storyid_reg = re.match(self.regex_str, self.storyname)
            if self.storyid_reg:
                self.storyid=self.storyid_reg.group(1)#正则取出用例编号
                #print(self.storyid_reg.group(1)) 
            self.testcase_num=self.xmind_num(self.story[i]['topics'][0])
            for k in range(0,self.testcase_num):
                self.testcase=self.story[i]['topics'][0]['topics'][k]
                self.testcase_name =self.xmind_title(self.testcase)
                self.testcase_stepnum=self.xmind_num(self.testcase) #每个用例的步骤数量
                self.sheet1.write(k + i + z + j, 2, self.testcase_name)
                self.sheet1.write(k + i + z + j, 0, self.storyid)
                self.sheet1.write(k + i + z + j, 1, self.storyname)
                self.sheet1.write(k + i + z + j, 5, servicename)
                self.sheet1.write(k + i + z + j, 6, editionname)
                self.sheet1.write(k + i + z + j, 7, performer)
                for x  in range(0,self.testcase_stepnum):
                    self.testcase_step=self.testcase['topics'][x]
                    self.teststep_title=self.xmind_title(self.testcase_step) #用例步骤名称
                    self.teststep_num=self.xmind_num(self.testcase_step) #用例步骤个数
                    if self.teststep_num != 0:
                        for y in range(0,self.teststep_num):
                            self.test_results=self.testcase_step['topics'][y]
                            self.test_result=self.xmind_title(self.test_results)#用例结果
                            self.sheet1.write(k + i + z + j+y+1, 3, self.teststep_title)
                            self.sheet1.write(k + i + z + j + y+1, 4, self.test_result)
                        z = z + y+1
                    else:
                        self.test_result=' '
                        self.sheet1.write(k + i + z + j+1  , 3, self.teststep_title)
                        self.sheet1.write(k + i + z + j+1 , 4, self.test_result)
                        z = z + 1
            j=j+k
        self.f.save(self.xls_name+'.xls') #xls名称取xmind主题名称

if __name__ == '__main__':
     xmind_file = "C:\\Users\\Administrator\\Desktop\\版本测试.xmind"  # xmind文件
     servicename='aa'
     editionname='bb'
     performer='cc'
     #xmind_to_xls().write_excel(xmind_file,servicename,editionname,performer)
     xmind_to_xls().xmind_cat(xmind_file)

  

おすすめ

転載: www.cnblogs.com/xu-xu/p/11999960.html
おすすめ