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.

