Visual Basic.NET - DataGridView y array

 
Vista:
sin imagen de perfil
Val: 9
Ha disminuido su posición en 8 puestos en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

DataGridView y array

Publicado por Javier (4 intervenciones) el 16/05/2019 09:44:22
Hola, soy bastante nuevo en esto de la programación y necesito ayuda, espero que alguien me la facilite, doy las gracias por anticipado. Quiero cargar un DataGridView desde un Excel, pero solo aquellas línea que contengan una serie de palabras concretas, lo estoy intentando con un array, pero solo me carga la ultima variable del array. Estoy trabajando con VisuaStudio 2017 en VB. Agradecería que me podáis ayudar.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Phil Rob
Val: 2.757
Oro
Ha mantenido su posición en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

DataGridView y array

Publicado por Phil Rob (730 intervenciones) el 17/05/2019 23:57:24
Hola,

Quizá es facil pero tienes que dar más informaciónes ...

El codigo seguiente lea los datos en el color amarillo de el XLS del imagen 1 y lleana el DGV del imagen 2. Pero es para un problema bien definido ...

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
Dim NbColXLS As Integer = 0
        XLSAPP = New Excel.Application
        XLSAPP.Visible = True '*************************
        XLSAPP.Workbooks.Open(CurDir() & "\" & "Savon.xlsx")  'ouvrir le fichier XLS
        NbColXLS = 0
        XLSAPP.Visible = False '*************************
 
  ' ... ... ...
 
        For c = 1 To 25
            Valeur = XLSAPP.Cells(l, c).Text
            If XLSAPP.Cells(l, c).Text <> String.Empty Then
                DGVGen.Columns.Add(Valeur, Valeur)
                DGVGen.Columns(Valeur).SortMode = System.Windows.Forms.DataGridViewColumnSortMode.Programmatic   '.NotSortable()
                DGVGen.Columns(Valeur).HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter
                If c > 1 Then DGVGen.Columns(Valeur).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight
                ColonnesXLS(NbColXLS) = c
                NbColXLS += 1
                ReDim Preserve ColonnesXLS(NbColXLS)
            End If
        Next c
 
  ' ... ... ...
 
        While XLSAPP.Cells(l, ColonnesXLS(c)).Text <> String.Empty
            DGVGen.Rows.Add()
            For c = 0 To ColonnesXLS.Length - 2
                DGVGen.Item(c, DGVGen.RowCount - 1).Value = XLSAPP.Cells(l, ColonnesXLS(c)).Text
            Next
            c = 0
            l += 1
        End While
 
        XLSAPP.Workbooks.Close()
        XLSAPP.Visible = False
        XLSAPP.Quit()
        XLSAPP = Nothing

Imagen 1 :
Excel1

Imagen 2 :
Excel2
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
sin imagen de perfil
Val: 9
Ha disminuido su posición en 8 puestos en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

DataGridView y array

Publicado por Javier (4 intervenciones) el 18/05/2019 19:45:37
Primero agradecerte tu respuesta. Intentare explicarme lo mejor posible, siguiendo el ejemplo que tu me pones te diré que quiero copia en el DataGridView las lineas del excel que contengan las siguientes palabras "huile, cire y beurre" en cualquier posición del texto.
Gracias
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Phil Rob
Val: 2.757
Oro
Ha mantenido su posición en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

DataGridView y array

Publicado por Phil Rob (730 intervenciones) el 24/05/2019 23:46:59
Hola,


En modicando el codigo de mi ejemplo anterior, el codigo siguiente tiene las celdas que contienen la palabra "huile".

1
2
3
4
5
6
For c = 1 To 25
            Valeur = XLSAPP.Cells(l, c).Text
            If XLSAPP.Cells(l, c).ToString.IndexOf("huile") > -1 Then   ' Linea para seleccionar las celdas con la palabra "huile"
                If XLSAPP.Cells(l, c).Text <> String.Empty Then
                    DGVGen.Columns.Add(Valeur, Valeur)
... ... ...

Disculpa la demora, es solamente ahora que veo tu respuesta.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 9
Ha disminuido su posición en 8 puestos en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

DataGridView

Publicado por Javier (4 intervenciones) el 27/05/2019 20:41:33
Buenas tardes, te agradezco el interés pero no que consigo que funcione, adjunto el archivo, he variado un poco el desarrollo, tengo dos DataGrid, en uno cargo todas las lineas, esto me funciona y en el segundo quiero cargar solo las lineas que contengan ciertas palabras en cualquier posición del texto. Ejemplo, en el segundo DataGrid que cargue solo las lineas que con tengan las palabras Paypal, Eroski y Bretxa. Es segundo DataGrid se cargar del primero.
Adjunto archivo de ejemplo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Phil Rob
Val: 2.757
Oro
Ha mantenido su posición en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

DataGridView y array

Publicado por Phil Rob (730 intervenciones) el 27/05/2019 21:36:20
Hola,

Había no comprendido que trabajas con SQL ...

En este caso, solo escribe la consulta con WHERE … LIKE … ( en continuación de tu código) :

1
2
3
4
5
6
7
8
9
10
11
12
' ... ... ...
        dgvMovimientos.DataSource = ods.Tables("Hoja1")
 
        consulta = "select * from [Hoja1$] WHERE Descripcion LIKE '%Paypal%' OR
                                                Descripcion LIKE '%Bretxa%' OR    
                                                Descripcion LIKE '%Eroski%' ;"
        oda = New OleDbDataAdapter(consulta, cnn)
        ods.Tables.Add("Hoja2")
        oda.Fill(ods.Tables("Hoja2"))
        dgvFiltro.DataSource = ods.Tables("Hoja2")
 
' ... ... ...

Saludos


PruebaXLS
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
sin imagen de perfil
Val: 9
Ha disminuido su posición en 8 puestos en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

DataGridView y array

Publicado por Javier (4 intervenciones) el 28/05/2019 06:31:58
Perfecto, muchas gracias
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar