Non riesco a trovare esempi in cui xlwt viene utilizzato per scrivere in file esistenti. Ho un file xls esistente su cui ho bisogno di scrivere. Quando uso xlrd per leggere il file, non riesco a capire come trasformare il tipo di "libro" restituito in un xlwt.Workbook. Apprezzerei se qualcuno potesse indicarmi un esempio.scrittura su cartella di lavoro esistente utilizzando xlwt
risposta
I am unable to find examples where xlwt is used to write into existing files.
Non ci sono esempi. Non è possibile. Non con xlwt, né con altri software. La struttura del file XLS è complicata e non si comporta come un database a cui è possibile aggiungere righe in una tabella di propria scelta.
Qualsiasi software utilizzi deve fare come un utente con una copia di Excel e una tastiera: (1) "apri il file", ad esempio carica il contenuto nella memoria (2) manipola le informazioni in memoria (3) " salva "(che cancella il file esistente e lo sostituisce con un nuovo file) o" salva come "(che scrive un nuovo file e lascia il file esistente invariato).
I told you this circa 12 ore fa, ma qui è ancora una volta:
Visita this summary site.
Punti di interesse:
pacchetto xlutils
tutorial su XLRD, xlwt, e xlutils ... contiene esempi
google-group/mailing-list per fare domande come questa (aiuta ad aver lavorato prima attraverso il tutorial)
È necessario xlutils.copy
. Provare qualcosa di simile:
from xlutils.copy import copy
w = copy('book1.xls')
w.get_sheet(0).write(0,0,"foo")
w.save('book2.xls')
Non dimenticare che non è possibile sovrascrivere le celle di default come indicato in this question.
Ecco alcuni esempi di codice che ho usato di recente per fare proprio questo.
Apre una cartella di lavoro, scende le righe, se viene soddisfatta una condizione, scrive alcuni dati nella riga. Finalmente salva il file modificato.
from xlutils.copy import copy # http://pypi.python.org/pypi/xlutils
from xlrd import open_workbook # http://pypi.python.org/pypi/xlrd
from xlwt import easyxf # http://pypi.python.org/pypi/xlwt
START_ROW = 297 # 0 based (subtract 1 from excel row number)
col_age_november = 1
col_summer1 = 2
col_fall1 = 3
rb = open_workbook(file_path,formatting_info=True)
r_sheet = rb.sheet_by_index(0) # read only copy to introspect the file
wb = copy(rb) # a writable copy (I can't read values out of this, only write to it)
w_sheet = wb.get_sheet(0) # the sheet to write to within the writable copy
for row_index in range(START_ROW, r_sheet.nrows):
age_nov = r_sheet.cell(row_index, col_age_november).value
if age_nov == 3:
#If 3, then Combo I 3-4 year old for both summer1 and fall1
w_sheet.write(row_index, col_summer1, 'Combo I 3-4 year old')
w_sheet.write(row_index, col_fall1, 'Combo I 3-4 year old')
wb.save(file_path + '.out' + os.path.splitext(file_path)[-1])
questa dovrebbe essere la risposta accettata – chefsmart
Grazie. Questa è una risposta molto utile. – Jubbles
@chefsmart Yup, avrebbe dovuto essere. Inoltre, Greg ha risposto senza essere un coglione. +1 – RaytheonLiszt
L'esempio di codice è esattamente questo:
from xlutils.copy import copy
from xlrd import *
w = copy(open_workbook('book1.xls'))
w.get_sheet(0).write(0,0,"foo")
w.save('book2.xls')
È necessario creare Book1.xls alla prova, ma si ottiene l'idea.
Ho avuto lo stesso problema. Il mio cliente mi ha ordinato lo script Python 3.4 che aggiorna i file XLS (non XLSX) di Excel.
Il primo pacchetto xlrd è stato installato da "pip install" senza problemi nella mia home di Python.
Il 2o xlwt doveva dire "pip install xlwt-future" per essere compatibile.
la 3 xlutils non ha il supporto per Python 3, ma ho adattato un po 'e ora funziona, almeno per lo script dummy:
#!C:\Python343\python
from xlutils.copy import copy # http://pypi.python.org/pypi/xlutils
from xlrd import open_workbook # http://pypi.python.org/pypi/xlrd
from xlwt import easyxf # http://pypi.python.org/pypi/xlwt
file_path = 'C:\Dev\Test_upd.xls'
rb = open_workbook('C:\Dev\Test.xls',formatting_info=True)
r_sheet = rb.sheet_by_index(0) # read only copy to introspect the file
wb = copy(rb) # a writable copy (I can't read values out of this, only write to it)
w_sheet = wb.get_sheet(0) # the sheet to write to within the writable copy
w_sheet.write(1, 1, 'Value')
wb.save(file_path)
Ho attaccato il file qui: http://ifolder.su/43507580
Scrivi a [email protected] se è scaduto.
P.S .: Alcune funzioni non vengono chiamate nell'esempio fittizio, quindi forse avranno bisogno anche di un adattamento. Chi vuole farlo, risolve le eccezioni una ad una con un aiuto di google. Non è un compito molto difficile, perché il codice del pacchetto è piccolo ...
ho openpyxl
# -*- coding: utf-8 -*-
import openpyxl
file = 'sample.xlsx'
wb = openpyxl.load_workbook(filename=file)
# Seleciono la Hoja
ws = wb.get_sheet_by_name('Hoja1')
# Valores a Insertar
ws['A3'] = 42
ws['A4'] = 142
# Escribirmos en el Fichero
wb.save(file)
Sebbene questo codice possa risolvere il problema, è necessario spiegare sempre che cosa fa e perché aiuta. – BDL
- 1. Scrittura file su cartella temporanea
- 2. ImportErrore: No Modulo denominato xlwt
- 3. scrittura a un file già esistente utilizzando FileWriter Java
- 4. supporta xlwt xlsx Formato
- 5. Scrittura di file su HDFS utilizzando Java
- 6. Come posso modificare una cartella di lavoro Excel esistente con Perl?
- 7. come copiare un foglio di un foglio di lavoro su un altro foglio di lavoro utilizzando POI apache e java
- 8. Scrittura accesso alla cartella Programmi
- 9. Come si modifica un foglio esistente in una cartella di lavoro di Excel utilizzando il pacchetto Openxlsx in R?
- 10. Chrome "Goccia cartella dell'area di lavoro qui"
- 11. Utilizzo di panda su pd.read_excel() per più fogli di lavoro della stessa cartella di lavoro
- 12. Lettura/scrittura su file utilizzando jQuery
- 13. Formattazione condizionale xlwt
- 14. Marshalling su un oggetto esistente utilizzando JAXB
- 15. Importazione di un progetto Eclipse esistente nell'area di lavoro MyEclipse
- 16. scrittura ad un Excel file esistente
- 17. Android scrittura alla cartella della scheda SD
- 18. cartella di lavoro excel da memorystream
- 19. java.io.FileNotFoundException su un file esistente
- 20. Creare una cartella esistente in un repository
- 21. Conservazione degli stili utilizzando python's xlrd, xlwt e xlutils.copy
- 22. Python Excel (xlrd, xlwt) - Come copiare uno stile da una cella e metterlo su un altro
- 23. Come aggiungere una cartella esistente con i file a SVN?
- 24. Lettura/scrittura di dati binari su SD utilizzando Arduino
- 25. È possibile trasferire una copia di lavoro esistente in un nuovo ramo utilizzando TortoiseSVN?
- 26. R Download.File Problema con cartella di lavoro Excel
- 27. Come "aggiornare" una cartella di lavoro invece di riaprirla (utilizzando macro VBA)?
- 28. Cartella di lettura/scrittura di IIS 7 corretta
- 29. Rendere la cartella esistente un sottoalbero git
- 30. Imposta la htdocs/sottocartella Apache come cartella di lavoro GIT
Grazie. V informativo e volevo dire prima - i collegamenti sono molto utili. –
accettando - sì. upvote, non l'ho notato fino ad ora - thx La funzione xlutils.copy() non sembra conservare alcun foglio di lavoro con tabelle pivot. C'è una soluzione? –
Ho già risposto alla tua domanda su tabelle pivot: No. –