Pannello di Controllo Moderatore ]

[Risolto] Macro per aprire ed unire file xls

Creare una macro - Scrivere uno script - Usare le API

[Risolto] Macro per aprire ed unire file xls

Messaggioda born2run » martedì 4 giugno 2019, 15:04

Salve a tutti,

dopo aver risolto nel post (viewtopic.php?f=26&t=9907) l'unione di file .ods, vorrei risolvere anche questo nuovo problema:
come unire file in un formato pseudo xls (non ods), in un unico file.

In particolar modo questi file possono essere solo in questo formato .xls, e tra l'altro quando li apro mi danno un messaggio strano e vengono aperti in pseudo testo da excel (la prima colonna A non riconosce le date con gli orari e le successive non riconoscono i numeri con il punto e sono trattati come stringhe)

Allego a titolo di esempio due file del tipo ottenuto, e che devo aggregare:
DB orario 1.xls
(71.5 KiB) Scaricato 15 volte

DB orario 2.xls
(64.86 KiB) Scaricato 11 volte


Di questi file ne ho molti (centinaia) e sono molto lunghi (tantissime righe più di 8000) tanto che qui non me li accettava pe rle dimensioni eccessive (e ho dovuto ridurli da annuali a mensili).

Volendo fare questa aggregazione in maniera automatica con una macro, ho trasformato la macro già consigliata da Patel (sempre nel post sopra), creandone una seconda che allego.
Aggregatore orario v1.ods
(17.91 KiB) Scaricato 13 volte


In questa Macro ho modificato nella sub Mergefile l'estensione da .ods a.xls inq uesta riga:
Codice: Seleziona tutto   Espandi visualeStringi visuale
sPattern = "*.xls"


Ho però ancora due problemi:
1) quando la macro unisce i file uno in coda all'altro sul foglio aggregatore, inserisce una riga bianca tra fine di un file e inizio del successivo. come si può levare?
Ho provato ad editare questa riga,
Codice: Seleziona tutto   Espandi visualeStringi visuale
adr.StartRow = adr.EndRow '+1

ma mantiene la riga...
Potrei forse ovviare cancellando le righe vuote...

Ma il vero problemaè il secondo:
2) quando la Macro copia i dati dei vari file di origine, sul foglio Aggregato unisce tutte le colonne in un'unica colonna, rendendo impossibile la divisione e la successiva gestione dei valori.

Girando sui forum..ho trovato che ci sono dei limiti di OO con i dialoghi di importazione dei file, risolvibili con i filtri, ma non saprei dove inserire il comando.

Spero che voi possiate aiutarmi a renderlo funzionante.

Grazie in anticipo!
Ultima modifica di born2run il venerdì 7 giugno 2019, 14:18, modificato 2 volte in totale.
ciao
Alfredo
OpenOffice 4.1.6 su Windows 7
born2run
 
Messaggi: 12
Iscritto il: giovedì 30 maggio 2019, 19:23

Re: Macro per aprire ed unire file xls

Messaggioda born2run » martedì 4 giugno 2019, 17:40

Studiando un po la documentazione sul parametro FilterProperties, riguardo il secondo problema ho trovato un workaround.

Ho inserito questo filtro trattando il file come csv(boh?)

Codice: Seleziona tutto   Espandi visualeStringi visuale
   mFileProperties(0).Name = "FilterName"
   mFileProperties(0).Value = "scalc: Text - txt - csv (StarCalc)"
   mFileProperties(1).Name = "FilterFlags"
   mFileProperties(1).Value = "44/32/9,,0,1,1/4/2/2/3/2/4/2/5/2/6/10/7/10/8/10/9/10/10/10/11/10/12/10/13/10/14/10/15/10/16/10/17/10"


il tutto è un po macchinoso..ma non sono riuscito a fare di meglio.
Adesso almeno riesco ad ottenere colonne distinte con valori numerici lavorabili in uscita

In più la routine Ordina porta tutte le righe vuote in alto...(e cancellandole potrei risolvere anche il primo problema).
Non è ancora quello che vorrei, ma è un buon risultato.

Aggregatore orario v2.ods
(99.38 KiB) Scaricato 13 volte


Non so se qualcuno ha soluzioni più eleganti.. ;)
ciao
Alfredo
OpenOffice 4.1.6 su Windows 7
born2run
 
Messaggi: 12
Iscritto il: giovedì 30 maggio 2019, 19:23

Re: Macro per aprire ed unire file xls

Messaggioda patel » mercoledì 5 giugno 2019, 9:07

per aprire un xlsx non c'è bisogno di workaround
Codice: Seleziona tutto   Espandi visualeStringi visuale
Sub aprixls
Dim Documento  As Object, cella As Object, adresseDoc As String, Doc  As Object
Dim  dummy()
Doc = ThisComponent
'adresseDoc = ConvertToURL("/media/DATI/Documenti/Excelfile/ContoDeposito.ods")
adresseDoc = ConvertToURL("F:\Download\esempio.xlsx")
Documento = StarDesktop.loadComponentFromURL(adresseDoc, "_default", 0, dummy() )
End Sub
-------------------
OpenOffice 4.1 e Libre Office 6.o.7.3 su Windows 10
allega un file di esempio, guadagnerai tempo tu e lo farai risparmiare a chi ti aiuta
patel
Volontario attivo
Volontario attivo
 
Messaggi: 3283
Iscritto il: venerdì 30 aprile 2010, 8:04
Località: Livorno

Re: Macro per aprire ed unire file xls

Messaggioda born2run » mercoledì 5 giugno 2019, 17:41

SIiPatel,
ma se utilizzo queste righe che tu mi dai, comunque importa tutte le colonne in una unica sul fiel aggregato.

Serve per forza filterOptions per dirgli di importarle separate e con 10 come valore per dirlgi che sono numeri.
ciao
Alfredo
OpenOffice 4.1.6 su Windows 7
born2run
 
Messaggi: 12
Iscritto il: giovedì 30 maggio 2019, 19:23

Re: Macro per aprire ed unire file xls

Messaggioda patel » venerdì 7 giugno 2019, 9:05

questo ti succede se parti da file di testo come effettivamente sono i file che hai allegato, ma non con file excel.
Non basta cambiare l'estensione di un file di testo per farlo diventare un file excel
-------------------
OpenOffice 4.1 e Libre Office 6.o.7.3 su Windows 10
allega un file di esempio, guadagnerai tempo tu e lo farai risparmiare a chi ti aiuta
patel
Volontario attivo
Volontario attivo
 
Messaggi: 3283
Iscritto il: venerdì 30 aprile 2010, 8:04
Località: Livorno

Re: Macro per aprire ed unire file xls

Messaggioda born2run » venerdì 7 giugno 2019, 14:17

patel ha scritto:questo ti succede se parti da file di testo come effettivamente sono i file che hai allegato, ma non con file excel.
Non basta cambiare l'estensione di un file di testo per farlo diventare un file excel


figurati se lo vado a cambiare.. ;)
come ti dicevo i file escono cosi da questo programma come output..e anche se hanno formato pseudo excel , all'avvio mi mostrano un dialogo di non compatibilità. Quindi sicuramente hanno problemi.

Comunque ho risolto cosi..sembra funzionare con qel filtro.

Grazie
ciao
Alfredo
OpenOffice 4.1.6 su Windows 7
born2run
 
Messaggi: 12
Iscritto il: giovedì 30 maggio 2019, 19:23


Torna a Macro e UNO API

Chi c’è in linea

Visitano il forum: Nessuno e 2 ospiti