Importazione di un file Excel

' 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()