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 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