Re: [Python] Scivere un file excel esistente - (Ex) Moduli xlrd e (xlwt non funzionante)
> Credo che l'unico modo per modificare gli Excel direttamente si andare > di pywin32 e le varie chiamate tramite COM (solo per Windows). Però è > estremamente lento (almeno quando lo avevo provato su python2 e su > file xls) e devi avere installato Excel nella macchina dove deve > girare. Volevo intervenire ieri ma, mi è passato di mente. Non sono purtroppo un programmatore python, mi sono iscritto in lista per vedere di imparare qualcosa. Ad ogni modo (anche se ho visto che ha risolto in altro modo, più efficiente), se rimane accettabile il formato xlsx, è editabile in modo quasi nativo attraverso xml. E' un formato "aperto" (per quanto possa essere aperto un prodotto MS). In questo modo non è necessario avere il pacchetto office installato, noi lo usiamo tramite PHP. Vedo che c'è un porting Python openpyxl [1]. Può essere una strada. [1]https://pythonhosted.org/openpyxl/ ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
Re: [Python] Scivere un file excel esistente - (Ex) Moduli xlrd e (xlwt non funzionante)
Il 20 settembre 2014 18:18, Carlos Catucci ha scritto: > > 2014-09-20 18:06 GMT+02:00 Andrea Congiu : >> >> Il problema è proprio aggiungere, non ci riesco e se creo un file nuovo >> e sovrascrivo perdo i dati precedentemente archiviati. > > > Hai saltato il primo passaggio: leggere i dati esistenti e accodarci i > nuovi, solo dopo scrivere i dati (vecchi + nuovi accodati). > > Non e' il massimo dell'efficienza a dire il vero. > > Usi python 3.x se ho be capito. Io ho avuto a che fare con lo stesso > problema e risolto con una qualche libreria (non ricordo quale dovrei > ripescare se riesco i sorgenti) ma era python 2.x Credo che l'unico modo per modificare gli Excel direttamente si andare di pywin32 e le varie chiamate tramite COM (solo per Windows). Però è estremamente lento (almeno quando lo avevo provato su python2 e su file xls) e devi avere installato Excel nella macchina dove deve girare. Ciao, Simone ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
Re: [Python] Scivere un file excel esistente - (Ex) Moduli xlrd e (xlwt non funzionante)
2014-09-20 18:06 GMT+02:00 Andrea Congiu : > Il problema è proprio aggiungere, non ci riesco e se creo un file nuovo > e sovrascrivo perdo i dati precedentemente archiviati. > Hai saltato il primo passaggio: leggere i dati esistenti e accodarci i nuovi, solo dopo scrivere i dati (vecchi + nuovi accodati). Non e' il massimo dell'efficienza a dire il vero. Usi python 3.x se ho be capito. Io ho avuto a che fare con lo stesso problema e risolto con una qualche libreria (non ricordo quale dovrei ripescare se riesco i sorgenti) ma era python 2.x Carlos -- EZLN ... Para Todos Todo ... ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
Re: [Python] Scivere un file excel esistente - (Ex) Moduli xlrd e (xlwt non funzionante)
Il 20/09/2014 15:53, Francesco Pischedda ha scritto: > La prima volta che lancio excel.py (allegato) creo il file > coordinate.xlsx e inserisco nel foglio Coordinate i valori delle > variabili. > > La seconda volta che lancio excel.py il file coordinate.xlsx esite già e > il programma dovrebbe inserire i valori delle variabili nella prima riga > vuota del foglio Coordinate, ma come faccio visto che non ci sono moduli > per modificare un file excel già esistente? > > > premettendo che non ho esperienza diretta con le librerie citate, la > prima soluzione che mi viene in mente potrebbe essere: > - leggere il file > - aggiungere i dati che ti servono dove ti servono Il problema è proprio aggiungere, non ci riesco e se creo un file nuovo e sovrascrivo perdo i dati precedentemente archiviati. > - sovrascrivere il file originale con il risultato ottenuto Grazie comunque intanto continuo a studiare. Saluti andrea ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
Re: [Python] Scivere un file excel esistente - (Ex) Moduli xlrd e (xlwt non funzionante)
> > La prima volta che lancio excel.py (allegato) creo il file > coordinate.xlsx e inserisco nel foglio Coordinate i valori delle variabili. > > La seconda volta che lancio excel.py il file coordinate.xlsx esite già e > il programma dovrebbe inserire i valori delle variabili nella prima riga > vuota del foglio Coordinate, ma come faccio visto che non ci sono moduli > per modificare un file excel già esistente? > premettendo che non ho esperienza diretta con le librerie citate, la prima soluzione che mi viene in mente potrebbe essere: - leggere il file - aggiungere i dati che ti servono dove ti servono - sovrascrivere il file originale con il risultato ottenuto ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
[Python] Scivere un file excel esistente - (Ex) Moduli xlrd e (xlwt non funzionante)
Buona sera lista, ho risolto in parte la mia precedente richiesta Moduli xlrd e (xlwt non funzionante) ma, ora mi trovo ad affrontare un altro problema con i file di excel. Premessa: xlrd compatibile con python 3 - Per leggere un file excel xlwt non è compatibile con python 3 - Per modificare un file excel xlsxwriter compatibile con python 3 - Solo per creare un file excel ma non per modificarlo Quindi: La prima volta che lancio excel.py (allegato) creo il file coordinate.xlsx e inserisco nel foglio Coordinate i valori delle variabili. La seconda volta che lancio excel.py il file coordinate.xlsx esite già e il programma dovrebbe inserire i valori delle variabili nella prima riga vuota del foglio Coordinate, ma come faccio visto che non ci sono moduli per modificare un file excel già esistente? Potrei trovare la prima riga vuota con xlrd e non ho capito ancora come e poi, come inserisco i valori in questa riga? Saluti e grazie andrea #!/usr/bin/python # -*- coding: utf-8 -*- # Questa porzione del codice, crea e scrive un file excel con estensione .xlsx e per farlo si serve del modulo xlsxwriter che non è presente fra i moduli standard, # quindi si è reso necessario scaricare ed installare il pacchetto python3-xlsxwriter import os import xlsxwriter # Dichiero le variabili nome = "Franz Tappeiner" descrizione = "Ospedale Civile di Merano (BZ)" g_p_s = "46° 40' 36.7'' N - 11° 9' 6.3'' E" g_p = "46° 40.6116667' N - 11° 9.105' E" g = "46.6768611° N - 11.15175° E" web = "46.6768611,11.15175" nmea = "4640.6117,N, 01109.1050,E" url = "https://www.google.com/maps/preview?q="; + web riga = [nome, descrizione, g_p_s, g_p, g, nmea] # Creo una lista con tutte le variabili da inserire nel foglio 1 print() # Con questa istruzione controllo che il file coordinate.xlsx non esiste e se è vera lo creo e inserisco le variabili if not os.path.isfile('coordinate.xlsx'): workbook = xlsxwriter.Workbook('coordinate.xlsx') # Crea il file coordinate.xlsx foglio1 = workbook.add_worksheet("Coordinate")# Crea il primo foglio foglio2 = workbook.add_worksheet("Note") # Crea il secondo foglio # Inserisce i seguenti metadati nel file coordinate.xlsx (queste righe di codice sono una unica istruzione) workbook.set_properties({ 'title':'Coordinate geografiche', 'subject': 'Inserite da Python', 'author': 'Andrea', 'manager': 'Andrea', 'company': 'of Wolves', 'category': 'Archivio', 'keywords': 'Coordinate geografiche - Archivio', 'comments': 'Archivio delle coordinate geografiche che nel tempo sono state convertite con il programma coordinate.py scritto in Python 3.4.0'}) # Foglio1 # Formattazioni intestazioni = workbook.add_format({'bold': 1, 'border': 1, 'align': 'center', 'valign': 'vcenter', 'fg_color': 'cyan'}) # Grossetto, bordo, allineamento orizzontale, allineamento verticale e colore della cella importati = workbook.add_format({'valign': 'vcenter', 'font_size': 9}) # font_size ridimensiona il caratte a 8 formato_web = workbook.add_format({'valign': 'vcenter', 'font_size': 9, 'font_color': 'blue', 'underline': 1}) # Colore del carattere, sottolineatura foglio1.set_column('A:A', 20) # Larghezza della colonna a 20 foglio1.set_column('B:B', 40) foglio1.set_column('C:G', 30) # Intesta le colonne foglio1.merge_range('C1:E1', 'COORDINATE GEOGRAFICHE', intestazioni) # Unisce da C1 a E1, Inserisce COORDINATE GEOGRAFICHE e formatta con intestazione foglio1.write('A2', "NOME", intestazioni) foglio1.write('B2', "DESCRIZIONE", intestazioni) foglio1.write('C2', "GRADI PRIMI E SECONDI", intestazioni) foglio1.write('D2', "GRADI E PRIMI", intestazioni) foglio1.write('E2', "GRADI", intestazioni) foglio1.write('F2', "STRINGA NMEA", intestazioni) foglio1.write('G2', "COORDINATE PER IL WEB", intestazioni) # Inserisce i dati degli input e quelli elaborati nel foglio1 (Coordinate) foglio1.write_row('A3', riga, importati) foglio1.write_url('G3', url, formato_web, web) #Foglio2 # Formattazioni note = workbook.add_format({'valign': 'vcenter', 'font_size': 14}) foglio2.set_column('A:A', 100) # Inserimento delle note foglio2.write('A2', "Questo file è stato generato dal programma scritto in Python 3.4.0", note) foglio2.write('A4', "Il programma in questione è coordinate.py", note) foglio2.write('A5', "Ha la funzione di archiviare tutte le coordinate geografiche che nel tempo sono state convertite", note) workbook.close() # Chiude il file print("Ho creato il file coordinate.xlsx e ho esporto i valori inseriti e le loro conversioni") print() else: pass # Qui dovrei inserire le istruzioni per inserire le variabili nella prima riga vuota del file coordinat