Forum
>>
Principianti
>>
Modulo XLRD
Pagina: 1
Esegui il login per scrivere una risposta.
Pagina: 1
Scritto da G71553N |
2015-12-23 11:11:21 - Modulo XLRD
|
Ciao a tutti!
Scrivo qui perché sono disperato, a lavoro mi sono trovato a dover fare manutenzione su un programma che usa il modulo in questione. Il programma è abbastanza semplice in se, legge un file xls con 4 colonne ed N righe, ed esegue una ricerca per nome "printando" la riga corrispondente al valore cercato. Ora il problema è che "qualcuno" ha cancellato o incasinato il programma ( in python 2.7 ) e non riesco nemmeno più a raccapezzarmi dato che non conosco nemmeno il modulo... Qualcuno avrebbe la 'pietà' di darmi un idea, una soluzione o un aiuto? note: il file xls ha 4 colonne ed n' righe, è praticamente un catalogo prodotti, tramite ricerca di una parola o parte della stessa contenuta nella colonna 0 dovrei avere un output cosi: col 0 col1 col2 col3 parola ricercata dati1 dati2 dati3 import xlrd import time print time.ctime() print " " ser = raw_input('Cosa stai cercando? ') ser2 = str(ser) MyFile = xlrd.open_workbook('C:\Users\USER\Desktop\Cartel1.xls') MySheet = MyFile.sheet_by_index(0) itemcol = MySheet.col_values(0) listap = [] listap2 = [] for item in itemcol: #valori colonna 0 listap.append(item) #lista valori colonna 0 non formattati for item in listap: #formattazione lista valori fold =str(item) listap2.append(fold) #creazione lista valori formattata #if any(ser2 in s for s in listap2): # print "si" if any(ser in s for s in itemcol): #----------funzionante ma non utilizzabile----------------# #try: # if listap2.index(ser2) >= 0: # print"ci siamo" # else: # print 'non trovato' #except ValueError: # print " " # print"articolo non trovato" print " " print'elenco fogli:', MyFile.sheet_names() print " " print "numero di righe nel file:", MySheet.nrows |
|
Scritto da Daniele aka Palmux |
2015-12-23 16:17:02 - Re: Modulo XLRD
|
Ciao a te, che errore ottieni?
Ho utilizzato in passato la libreria ed è piuttosto banale. Allega anche uno scarabocchio dell'xls, basta anche solo la riga d'intestazione ed una di dati. Se posso ti aiuto volentieri. Cya |
|
Scritto da G71553N |
2015-12-23 16:22:26 - Re: Modulo XLRD
|
lo sto riscrivendo da capo e ancora non ottengo quello che mi servirebbe....
praticamente si dovrebbe adattare a più tipi di file xls, ma il programma che ho provato a riscrivere va bene solo per un xls con 3 colonne, non esiste un modo per adattarlo in maniera che legga da solo i dati fino a EOF? import xlrd import time from xlrd import open_workbook def main(): print"*--------------------------------------------------------------------*" print " " print " ", time.ctime(), "#XXX V1.0 - Gestionale Catalogo#" print " " print"*--------------------------------------------------------------------*" a = None a = raw_input('cosa stai cercando? ') print " " xls=open_workbook('C:\Users\XXX\Desktop\Cartel1.xls') for sheets in xls.sheets(): list1=[] for col in range(sheets.ncols): for rows in range(sheets.nrows): list1.append(sheets.cell(rows, col).value) #print(list1) for i in list1: #print(i) list2 = [] for col in range(sheets.ncols): list2.append(sheets.cell(rows, col).value) #print list2 colonna1 = sheets.col(0) colonna2 = sheets.col(1) colonna3 = sheets.col(2) #print colonna1 #print colonna2 #print colonna3 colonnaA = [] colonnaB = [] colonnaC = [] colonnaA1B = [] colonnaB1B = [] colonnaC1B = [] for item in colonna1: colonnaA1 = str(item) colonnaA1B.append(colonnaA1) for item in colonna2: colonnaB1 = str(item) colonnaB1B.append(colonnaB1) for item in colonna3: colonnaC1 = str(item) colonnaC1B.append(colonnaC1) #------------------------------------------------------# key = [x for x in colonnaA1B if a in x] for item in key: b = item.strip('[]') c = colonnaA1B.index(b) data1 = colonnaA1Bc data2 = colonnaB1Bc data3 = colonnaC1Bc #print colonnaA1Bc, colonnaB1Bc, colonnaC1Bc #print data1, data2, data3 data1 = data1.strip('text:u') data1 = data1.strip('number:') data1 = data1.strip("''") data2 = data2.strip('text:u') data2 = data2.strip('number:') data2 = data2.strip("''") data3 = data3.strip('text:u') data3 = data3.strip('number:') data3 = data3.strip("''") print data1, data2, data3 torna() def torna(): print " " x = raw_input("Cerca un altro articolo? ") print " " if x == 'y': main() else: esci() def esci(): print " " print "Ciao bello!" print " " time.sleep(3) print "Mi sto spegnendo..." main() |
Pagina: 1
Esegui il login per scrivere una risposta.