Questo sito utilizza cookies, anche di terze parti, per mostrare pubblicità e servizi in linea con il tuo account. Leggi l'informativa sui cookies.
Username: Password: oppure
C# / VB.NET - vb-net filtro dati da foglio excel
Forum - C# / VB.NET - vb-net filtro dati da foglio excel

Avatar
eurostar_italia (Normal User)
Rookie


Messaggi: 33
Iscritto: 01/08/2011

Segnala al moderatore
Postato alle 23:36
Martedì, 23/07/2013
salve a tutti ultimamente sono un pò troppo presente nel forum.
oggi ho per le mani un altro applicativo.
scopo : da un foglio excel prelevato da un sito che ha molteplici dati,creare un altro foglio con solo alcuni dati quindi filtrati.
esempio :
foglio excel contenente le colonne auto,tipo,modello,targa,marca prendere solo le righe dove la marca corrisponde alla mia chiave di filtro.
Codice sorgente - presumibilmente VB.NET

  1. Dim excel As Microsoft.Office.Interop.Excel.Application
  2.         Dim wb As Microsoft.Office.Interop.Excel.Workbook
  3.         Dim ws As Microsoft.Office.Interop.Excel.Worksheet
  4.         dim auto as string
  5.         dim tipo as string
  6.         dim modello as string
  7.         dim targa as string
  8.         dim marca as string
  9.      dim riga as integer = 5
  10.  
  11.  
  12.  
  13.         excel = New Microsoft.Office.Interop.Excel.Application
  14.  
  15.         wb = excel.Workbooks.Open("c:\Ricerca_Avanzata.xls")
  16.         ws = excel.Worksheets("Foglio1")
  17.  
  18.         do while  ws.Cells(riga, 5).value = ""
  19.  
  20.  
  21.  
  22.  
  23.             Label1.Text = ws.Cells(riga, 4).VALUE 'marca
  24.             Label2.Text = ws.Cells(riga, 3).value 'auto
  25.             Label3.Text = ws.Cells(riga, 9).value 'tipo
  26.             Label4.Text = ws.Cells(riga, 10).value 'modello
  27.             Label5.Text = ws.Cells(riga, 11).value 'targa
  28.      
  29.             ''Label19.Text = riga
  30.  
  31.                 riga = riga + 1
  32.          
  33.             Loop
  34.    
  35.     End Sub


con questo codice scorro il foglio (la prima riga utile è la n.ro 5,le prime 4 sono sempre di intestazione).
però non so come filtrare i dati da scrivere sul nuovo foglio.
googlando non ho trovato molto.
mi sa che ho sbagliato qualcosa a livello logico

Ultima modifica effettuata da eurostar_italia il 24/07/2013 alle 0:12
PM Quote
Avatar
eurostar_italia (Normal User)
Rookie


Messaggi: 33
Iscritto: 01/08/2011

Segnala al moderatore
Postato alle 0:16
Mercoledì, 24/07/2013
ho parzialmente risolto cosi...ma credo sia un pò troppo macchinoso
Codice sorgente - presumibilmente VB.NET

  1. Dim excel As Microsoft.Office.Interop.Excel.Application
  2.         Dim wb As Microsoft.Office.Interop.Excel.Workbook
  3.         Dim ws As Microsoft.Office.Interop.Excel.Worksheet
  4.         dim auto as string
  5.         dim tipo as string
  6.         dim modello as string
  7.         dim targa as string
  8.         dim marca as string
  9.      dim riga as integer = 5
  10.  
  11.  
  12.  
  13.         excel = New Microsoft.Office.Interop.Excel.Application
  14.  
  15.         wb = excel.Workbooks.Open("c:\Ricerca_Avanzata.xls")
  16.         ws = excel.Worksheets("Foglio1")
  17.  
  18.         do while  ws.Cells(riga, 5).value = ""
  19.  
  20.   If UCase(ws.Cells(riga, 5).value) = UCase("FIAT") Then
  21.  
  22.             Label1.Text = ws.Cells(riga, 4).VALUE 'marca
  23.             Label2.Text = ws.Cells(riga, 3).value 'auto
  24.             Label3.Text = ws.Cells(riga, 9).value 'tipo
  25.             Label4.Text = ws.Cells(riga, 10).value 'modello
  26.             Label5.Text = ws.Cells(riga, 11).value 'targa
  27.      
  28.             riga = riga + 1
  29.  
  30.             Else
  31.                 riga = riga + 1
  32.             End If
  33.          
  34.             Loop
  35.    
  36.     End Sub


esiste un sistema migliore ?

PM Quote