我需要使用python从excel读写。 我使用此代码打开一个工作簿,创建一个副本,对其进行修改然后保存。 但是我丢失了所有格式,我不知道如何保存它。
import xlrd
import xlwt
import datetime
from xlutils.copy import copy
#CREO WORKBOOK
workbook_temp = xlrd.open_workbook('file1.xlsx') #workbook used to read
the data first time and then to read an index
i= int(workbook_temp.sheet_by_index(0).cell(0,0).value) #read the index
print(i)
workbook = xlrd.open_workbook('file'+str(i)+'.xlsx') #open the last
workbook
i= i+1
w= copy(workbook)
w.get_sheet(0).write(0,0,i) #update the index
n_fogli = workbook.nsheets #Numero dei fogli
def Controllo(data_odierna, data_macchina, n): #Controlla se tra
due date è passato un numero n di giorni
print('controllo date in corso')
if (data_odierna-data_macchina)>=datetime.timedelta(days=n):
return True
else:
return False
def Calcolo_consumo(posizione_gomma,mm):
posizione= posizione_gomma
if (posizione_gomma == 'ST DX' or posizione_gomma == 'ST SX'
consumo = 0.9/30
mm = mm - consumo
return mm
elif (posizione_gomma == 'TR ES' or posizione_gomma == 'TR IS' or
posizione_gomma == 'TR ED' or posizione_gomma == 'TR ID'):
consumo = 1/30
mm = mm - consumo
return mm
elif (posizione_gomma == ('1 SX' or '3 SX')):
consumo = 0.5/30
mm = mm- consumo
return mm
elif (posizione_gomma == '2 SX'):
consumo = 0.3/30
mm = mm - consumo
return mm
else:
return('Errore nella posizione gomma')
def Leggi_cella(pagina,colonna,riga):
return workbook.sheet_by_index(pagina).cell(riga,colonna).value
def Scrivi_cella(workbook,pagina,colonna,riga,valore):
null
#Acquisisco data odierna
date_temp = datetime.datetime.now()
date_odierna =
datetime.date(date_temp.year,date_temp.month,date_temp.day)
#Acquisisco data ultima modifica
date_ultima_modifica =
datetime.date(int(Leggi_cella(0,9,3)),int(Leggi_cella(0,7,3)),int(Leggi_cella(0,3,3)))
#Calcolo giorni passati
giorni_passati = date_odierna - date_ultima_modifica
print (date_odierna)
print (date_ultima_modifica)
if int(giorni_passati.days) >=1:
print('sono passati :' + str(giorni_passati.days) + ' giorni')
# aggiorno colonna
#controllo colonna mm
w.save('file'+str(i)+'.xlsx')
而且我不明白如何每次打开最后一个文件时都只能打开一次,因为索引读到的总是关于第一个文件