Re: [Python] Scivere un file excel esistente - (Ex) Moduli xlrd e (xlwt non funzionante)

2014-09-25 Per discussione Massimiliano Modena
> 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)

2014-09-24 Per discussione simozack
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 Per discussione Carlos Catucci
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)

2014-09-20 Per discussione Andrea Congiu
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)

2014-09-20 Per discussione Francesco Pischedda
>
> 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)

2014-09-20 Per discussione Andrea Congiu
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