venerdì 5 febbraio 2010

Importare da vari fogli di calcolo in un database (1)

Sulla mailing list utenti@it.openoffice.org è stato richiesto un metodo per importare, da una serie di file di calc, dei dati all'interno di un database.

La cosa non è fattibile con gli strumenti standard, in quanto le colonne sono in orizzontale, alcune sono spostate, e i file sono tanti.

Però è possibile con il basic. Il progetto è questo:
  1. aprire il primo file,
  2. prelevare i dati all'interno del file,
  3. scrivere i dati prelevati in un record del dabase,
e ripetere il tutto fino alla fine dei file.

Intanto vediamo come prelevare i dati nel file (punto 2.) e tenerli salvati provvisoriamente:

Sub getVariables
'dichiariamo le variabili array che conterranno i nomi dei campi ed il loro valore
Dim mNomi(2)
Dim mVar(2)
oDoc = ThisComponent
oSheet = oDoc.Sheets.getByName("Tabella1")
mNomi() = array("COGNOME","NOME","ETA'")
mVar() = array(sCognome,sNome,sVar)
'iteriamo tutti i campi presenti
For j=0 to UBound(mNomi)
'iteriamo le celle del foglio elettronico (il valore max dipende da quanto possono 'essere dispersi i campi)
For i=0 To 50
    oCell = oSheet.getCellByPosition(0,i)
    If oCell.string = mNomi(j) Then
        mVar(j) = oSheet.getCellByPosition(1,i).String
        Exit For
    Endif
Next
Next
'vediamo il risultato
print mVar(0) & "," & mVar(1) & "," & mVar(2)
End Sub


Il foglio di calc è del tipo:


Alla prossima!

Nessun commento:

Posta un commento