' Il seguente frammento di codice importa un file Excel contenente 3 colonne: Anno, Mese e Data Chiusura
' Può essere facilmente riadattato per ogni esigenza
' Nell'esempio vengono letti solo interi e date. Tenere presente che per leggere stringe, numeri in virgola mobile e booleani sono disponibili i metodi "ReadString", "ReadFloat" e "ReadBoolean" per l'oggetto "x"
Dim x As qwexcel
Dim i As Integer
Dim anno As Integer, mese As Integer
Dim dt As Date
Dim msg as string
Dim nfserver as string
'nfserver=<percorso del file da importare>
x = New qwexcel()
x.Open(nfserver)
x.SetActiveWorksheet(x.GetWorkbook.Worksheets(0).Name)
If Empty(x.ReadString(1,1)) Then
msg = "Il contenuto della Cella A1 è risultato essere vuoto !" + vbnewline + "Il file Excel deve contenere una sequenza continua."
Else
For i = 2 To 100000
If Utils.isNumeric(x.ReadInteger(i,1)) Then
anno = x.ReadInteger(i,1)
mese = x.ReadInteger(i,2)
If Empty(anno) Or Empty(mese) Then
msg = "ANNO e MESE non sono stati riconosciuti correttamente !" + vbnewline + "Riga n° " + cstr(i)
Exit For
End If
Dim par As AssocArray = New AssocArray
Dim q1 As qwtable
q1 = OpenTable(form, "SELECT * FROM P_DATA_CHIUS_MESI", par, False, True, msg)
If Empty(msg) Then
' Task da compiere con il recordset
If Not q1.Rowset.Findkey(anno, mese) Then
q1.beginappend()
q1.Replace("ANNO", anno)
q1.Replace("MESE", mese)
End If
If Not isDate(x.ReadDate(i,3)) Then
dt = Null
Else
dt = x.ReadDate(i,3)
End If
q1.Replace("DATA_CHIUS", dt)
q1.Saverecord()
Else
' Errore
Exit For
End If
CloseTable(form, q1)
End If
Next
End If
x.Close()