def on_bt_start_clicked(self):
        """
        Slot documentation goes here.
        """
        print 'mode', self.mode
        if self.mode == -1:
            self.textBrowser.append(u'您还没有选择模式!')
            return
        #如果条件不够则不能执行,并返回给必要的信息
        #print 'checksb', self.mode_directory_complete
        #print self.Str_directoryname
        if not self.check_can_start():
            print 'no'
            return

        if self.mode == 0:
            newf = EXCEL.Union_Excel_Row(self.filename1.__str__(),
                                         self.filename2.__str__(),
                                         self.main_key, self.sheet_main,
                                         self.sheet_fu, self.default)

        elif self.mode == 1:
            newf = EXCEL.Union_Excel_Col(self.filename1.__str__(),
                                         self.filename2.__str__(),
                                         self.main_key, self.sheet_main,
                                         self.sheet_fu, self.default)
        elif self.mode == 2:
            if CONFIGURE.DEBUG:
                print 'begin:default:', self.default
            if self.Dmode == 2:
                newf = EXCEL.Union_Excel_directory_col(self.Str_directoryname,
                                                       self.default)
            else:
                newf = EXCEL.Union_Excel_directory_row(self.Str_directoryname,
                                                       self.default)
        if not newf:
            self.textBrowser.append(u'合并失败!')
            return
        fileName = QtGui.QFileDialog.getSaveFileName(self,
                                                     u'保存路径',
                                                     '/union_excel',
                                                     selectedFilter='*.xls')
        if fileName:
            import re
            if not re.match('[^.]*.xls$', fileName.__str__()):
                self.textBrowser.append(u'只能保存为.xls格式的文件!')
                self.textBrowser.append(u'合并失败!')
            newf.save(fileName.__str__())
            self.textBrowser.append(u'合并成功!')
            self.textBrowser.append(u'已保存为' + fileName.__str__())

        print 'end'
    def set_comboBox_main_key_mode_init(self):
        if os.path.isfile(self.filename1.__str__()):
            #将主表的键值展示出来,如果是行模式,则加入第一行,如果是列模式,则加入第一列
            List = EXCEL.present_comboBox(self.filename1.__str__(), self.mode,
                                          self.sheet_main)
            if CONFIGURE.DEBUG:
                print List
            #首先清空
            self.comboBox_main_key_F.clear()
            #如果该列表元素是float型,则把小数点后末尾的0去掉
            #如果List为空,直接返回
            if len(List) == 0:
                #self.textBrowser.append(u'您选择的主表为空!')
                return
            import re
            for con in List:
                if CONFIGURE.DEBUG:
                    print con, type(con)
                if isinstance(con, float) and re.match(r'\d*\.0*$', str(con)):
                    gstr = re.match(r'\d*', str(con)).group()
                    self.comboBox_main_key_F.addItem(gstr)

                elif isinstance(con, float):
                    self.comboBox_main_key_F.addItem(str(con))
                else:
                    self.comboBox_main_key_F.addItem((con))

            self.label_key_F.setText(
                u'您选择的主键是:' +
                self.comboBox_main_key_F.currentText().__str__() + u'(默认是第1个)')
 def set_comboBox_main_key_mode_init(self):
     if os.path.isfile(self.filename1.__str__()):
         #将主表的键值展示出来,如果是行模式,则加入第一行,如果是列模式,则加入第一列
         List = EXCEL.present_comboBox(self.filename1.__str__(),  self.mode,  self.sheet_main)
         if CONFIGURE.DEBUG:
             print List
         #首先清空
         self.comboBox_main_key_F.clear()
         #如果该列表元素是float型,则把小数点后末尾的0去掉
         #如果List为空,直接返回
         if len(List) == 0:
             #self.textBrowser.append(u'您选择的主表为空!')
             return
         import re
         for con in List:
             if CONFIGURE.DEBUG:
                 print con, type(con)
             if isinstance(con,  float) and re.match(r'\d*\.0*$',  str(con)):
                 gstr = re.match(r'\d*',  str(con)).group()
                 self.comboBox_main_key_F.addItem(gstr)
             
             elif isinstance(con,  float):
                 self.comboBox_main_key_F.addItem(str(con))
             else:
                 self.comboBox_main_key_F.addItem((con))
     
         self.label_key_F.setText(u'您选择的主键是:'+self.comboBox_main_key_F.currentText().__str__() + u'(默认是第1个)')
    def check_can_start(self):

        if self.mode == 0 or self.mode == 1:
            if not os.path.isfile(self.filename1.__str__()):
                self.textBrowser.append(u'请选择正确的主表文件!')
                return CONFIGURE.NO
            if not os.path.isfile(self.filename2.__str__()):
                self.textBrowser.append(u'请选择正确的副表文件!')
                return CONFIGURE.NO

        if self.mode == 0:
            if self.mode_row_complete == 3:
                return CONFIGURE.OK
            else:
                if self.mode_row_complete == 0:
                    self.textBrowser.append(u'请选择正确的文件!')
                elif self.mode_row_complete == 1:
                    self.textBrowser.append(u'请选择正确的副表文件!')
                elif self.mode_row_complete == 2:
                    self.textBrowser.append(u'请选择正确的主表文件!')
                return CONFIGURE.NO
        elif self.mode == 1:
            if self.mode_col_complete == 3:
                return CONFIGURE.OK
            else:
                if self.mode_col_complete == 0:
                    self.textBrowser.append(u'请选择正确的文件!')
                elif self.mode_col_complete == 1:
                    self.textBrowser.append(u'请选择正确的副表文件!')
                elif self.mode_col_complete == 2:
                    self.textBrowser.append(u'请选择正确的主表文件!')
                return CONFIGURE.NO

        elif self.mode == 2:
            if self.Dmode == 0 or self.Dmode == 3:
                self.textBrowser.append(u'行列模式请二选一!')
                return CONFIGURE.NO
            if not os.path.isdir(self.Str_directoryname):
                self.textBrowser.append(u'请选择正确的文件夹!')
                return CONFIGURE.NO
            number = EXCEL.excel_numbers(self.Str_directoryname)
            #print 'number:', number
            if number == 0:
                self.textBrowser.append(u'文件夹下没有.xls或.xlsx文件!')
                return CONFIGURE.NO
            elif number == 1:
                self.textBrowser.append(u'文件夹下只有1个.xls或.xlsx文件!')
                return CONFIGURE.NO
            return CONFIGURE.OK
 def check_can_start(self):
     
     if self.mode == 0 or self.mode == 1:
         if not os.path.isfile(self.filename1.__str__()):
             self.textBrowser.append(u'请选择正确的主表文件!')
             return CONFIGURE.NO
         if not os.path.isfile(self.filename2.__str__()):
             self.textBrowser.append(u'请选择正确的副表文件!')
             return CONFIGURE.NO
         
     if self.mode == 0:
         if self.mode_row_complete == 3:
             return CONFIGURE.OK
         else:
             if self.mode_row_complete == 0:
                 self.textBrowser.append(u'请选择正确的文件!')
             elif self.mode_row_complete == 1:
                 self.textBrowser.append(u'请选择正确的副表文件!')
             elif self.mode_row_complete == 2:
                 self.textBrowser.append(u'请选择正确的主表文件!')
             return CONFIGURE.NO
     elif self.mode == 1:
         if self.mode_col_complete == 3:
             return CONFIGURE.OK
         else:
             if self.mode_col_complete == 0:
                 self.textBrowser.append(u'请选择正确的文件!')
             elif self.mode_col_complete == 1:
                 self.textBrowser.append(u'请选择正确的副表文件!')
             elif self.mode_col_complete == 2:
                 self.textBrowser.append(u'请选择正确的主表文件!')
             return CONFIGURE.NO
             
     elif self.mode == 2:
         if self.Dmode == 0 or self.Dmode == 3:
             self.textBrowser.append(u'行列模式请二选一!')
             return CONFIGURE.NO
         if not os.path.isdir(self.Str_directoryname):
             self.textBrowser.append(u'请选择正确的文件夹!')
             return CONFIGURE.NO
         number =  EXCEL.excel_numbers(self.Str_directoryname)
         #print 'number:', number
         if number == 0:
             self.textBrowser.append(u'文件夹下没有.xls或.xlsx文件!')
             return CONFIGURE.NO
         elif number == 1:
             self.textBrowser.append(u'文件夹下只有1个.xls或.xlsx文件!')
             return CONFIGURE.NO
         return CONFIGURE.OK
    def on_bt_file2_clicked(self):
        """
        Slot documentation goes here.
        """
        if self.mode == -1:
            self.textBrowser.append(u'您还没有选择模式!')
            return
        self.filename2 = QtGui.QFileDialog.getOpenFileName(
            self, u"选择文件2", "/home", str("Excel Files (*.xlsx *.xls)"))

        #如果文件不存在,返回
        if not os.path.isfile(self.filename2.__str__()):
            self.textBrowser.append(u'请选择正确的副表文件!')
            return
        self.label_2.setText(u'您选择的文件:' + self.filename2)

        #得到副表有几个sheet,如果为0则返回为空
        num_fu = EXCEL.sheets_numbers(self.filename2.__str__())
        if num_fu == 0:
            self.textBrowser.append(u'您选择的表为空!')
            return

        if CONFIGURE.DEBUG:
            print 'num_fu:', num_fu
        #self.textBrowser.append('sheet numbers:' + str(num_main))

        self.textBrowser.append(u'filename2:' + self.filename2)
        self.comboBox_sheet_fu_F.clear()

        #主表第几张sheet,默认是第一张
        i = 1
        while i <= num_fu:
            self.comboBox_sheet_fu_F.addItem(str(i))

            i = i + 1
        #将副表的键值展示出来,如果是行模式,则加入第一行,如果是列模式,则加入第一列


#        List = EXCEL.present_comboBox(self.filename2.__str__(),  self.mode,  self.sheet_fu)
#      if CONFIGURE.DEBUG:
#                print List

#不需要再选副表主键
#        #首先清空
#        self.comboBox_main_key_F.clear()
#        #如果该列表元素是float型,则把小数点后末尾的0去掉
#        #如果List为空,直接返回
#        if len(List) == 0:
#            self.textBrowser.append(u'您选择的表为空!')
#            return
#        import re
#        for con in List:
#            if CONFIGURE.DEBUG:
#                print con, type(con)
#            if isinstance(con,  float) and re.match(r'\d*\.0*$',  str(con)):
#                gstr = re.match(r'\d*',  str(con)).group()
#                self.comboBox_main_key_F.addItem(gstr)
#
#            elif isinstance(con,  float):
#                self.comboBox_main_key_F.addItem(str(con))
#            else:
#                self.comboBox_main_key_F.addItem((con))
#
#        self.label_key_F.setText(u'您选择的主键是:'+self.comboBox_main_key_F.currentText().__str__() + u'(默认是第1个)')

#第二个文件
        if self.mode == 0:
            self.mode_row_complete = self.mode_row_complete | 2
        elif self.mode == 1:
            self.mode_col_complete = self.mode_col_complete | 2
    def on_bt_file2_clicked(self):
        """
        Slot documentation goes here.
        """
        if self.mode == -1:
            self.textBrowser.append(u'您还没有选择模式!')
            return
        self.filename2 = QtGui.QFileDialog.getOpenFileName(self,
            u"选择文件2", "/home", str("Excel Files (*.xlsx *.xls)"))
           
        #如果文件不存在,返回
        if not os.path.isfile(self.filename2.__str__()):
            self.textBrowser.append(u'请选择正确的副表文件!')
            return
        self.label_2.setText(u'您选择的文件:'+self.filename2)
        
        #得到副表有几个sheet,如果为0则返回为空
        num_fu = EXCEL.sheets_numbers(self.filename2.__str__())
        if num_fu == 0:
            self.textBrowser.append(u'您选择的表为空!')
            return
        
        if CONFIGURE.DEBUG:
            print 'num_fu:', num_fu
        #self.textBrowser.append('sheet numbers:' + str(num_main))
        
        self.textBrowser.append(u'filename2:' + self.filename2)
        self.comboBox_sheet_fu_F.clear()
        
        #主表第几张sheet,默认是第一张
        i = 1
        while i <= num_fu:
            self.comboBox_sheet_fu_F.addItem(str(i))
            
            i = i+1
        #将副表的键值展示出来,如果是行模式,则加入第一行,如果是列模式,则加入第一列
#        List = EXCEL.present_comboBox(self.filename2.__str__(),  self.mode,  self.sheet_fu)
#      if CONFIGURE.DEBUG:
#                print List
                
                #不需要再选副表主键
#        #首先清空
#        self.comboBox_main_key_F.clear()
#        #如果该列表元素是float型,则把小数点后末尾的0去掉
#        #如果List为空,直接返回
#        if len(List) == 0:
#            self.textBrowser.append(u'您选择的表为空!')
#            return
#        import re
#        for con in List:
#            if CONFIGURE.DEBUG:
#                print con, type(con)
#            if isinstance(con,  float) and re.match(r'\d*\.0*$',  str(con)):
#                gstr = re.match(r'\d*',  str(con)).group()
#                self.comboBox_main_key_F.addItem(gstr)
#                
#            elif isinstance(con,  float):
#                self.comboBox_main_key_F.addItem(str(con))
#            else:
#                self.comboBox_main_key_F.addItem((con))
#        
#        self.label_key_F.setText(u'您选择的主键是:'+self.comboBox_main_key_F.currentText().__str__() + u'(默认是第1个)')
        
        #第二个文件
        if self.mode == 0:
            self.mode_row_complete = self.mode_row_complete | 2
        elif self.mode == 1:
            self.mode_col_complete = self.mode_col_complete | 2