
insertar columna en datagrid view
Publicado por Jesús (2 intervenciones) el 29/07/2016 19:17:26
buenas tardes soy nuevo en el foro y en programación, bueno deje la programación desde la uni porque no me gusto.
tengo un problema en una DGV cargo un archivo de excel y necesito insertar una columna, lo hago de la siguiente manera:
- en una caja de texto escribo la columna que quiero agregar y al click en el boton insertar agrega la columna.
mientras escriba el nombre de la columna y esta no este en el DGV no hay ningun problema, pero si pongo el nombre de alguna que ya este siendo usado me marca error de: DuplicateNameException
-quisiera que me orientaran como le puedo hacer, las columnas me las ingresa al final y necesito que las ingrese donde yo le digo y si esta siendo usado que no borre los datos que ahí se encuentran.
les agradezco su atención.
si sirve de algo les dejo el codigo:
Public Class frmLeerExcel
Private Shared HojaExcel As DataTable = Nothing
Private Shared Leyendo As Boolean = False
Private Shared PathExcel As String
Private Shared Fila1AsHeader As Boolean
Private Sub btnSeleccionarExcel_Click(sender As Object, e As EventArgs) Handles btnSeleccionarExcel.Click
Dim SeleccionArchivo As New OpenFileDialog
SeleccionArchivo.Filter = "Hojas Excel 2003|*.xls| Hojas Excel |*.xlsx"
If SeleccionArchivo.ShowDialog = Windows.Forms.DialogResult.OK Then
PathExcel = SeleccionArchivo.FileName
Fila1AsHeader = chkFila1Header.Checked
Dim Tareas As New Threading.Thread(AddressOf LeerExcel)
Tareas.Start()
Me.Enabled = False
Me.Timer1.Enabled = True
Leyendo = True
End If
End Sub
Private Sub LecturaTerminada()
dgvExcel.DataSource = HojaExcel
End Sub
Sub LeerExcel()
HojaExcel = ConvertExcel.convertirExcel2DataTable(PathExcel, Fila1AsHeader)
Leyendo = False
End Sub
Private Sub Timer1_Tick(sender As Object, e As EventArgs) Handles Timer1.Tick
If Leyendo Then
lblLeyendo.Visible = True
pbLeyendo.Visible = True
pbLeyendo.Maximum = ConvertExcel.TotalRegistro
If ConvertExcel.RegistroActual <= ConvertExcel.TotalRegistro Then
pbLeyendo.Value = ConvertExcel.RegistroActual
End If
Else
Timer1.Enabled = False
lblLeyendo.Visible = False
pbLeyendo.Visible = False
Me.Enabled = True
LecturaTerminada()
End If
End Sub
Private Sub btnGuardarArchivo_Click(sender As Object, e As EventArgs) Handles btnGuardarArchivo.Click
Dim SeleccionArchivo As New SaveFileDialog
If SeleccionArchivo.ShowDialog = Windows.Forms.DialogResult.OK Then
ConvertExcel.ExportToExcelFast(HojaExcel, SeleccionArchivo.FileName, True)
End If
End Sub
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles insertar.Click
HojaExcel.Columns.Add(columna.Text, GetType(String))
dgvExcel.DataSource = Nothing
dgvExcel.ClearSelection()
dgvExcel.DataSource = HojaExcel
End Sub
End Class
tengo un problema en una DGV cargo un archivo de excel y necesito insertar una columna, lo hago de la siguiente manera:
- en una caja de texto escribo la columna que quiero agregar y al click en el boton insertar agrega la columna.
mientras escriba el nombre de la columna y esta no este en el DGV no hay ningun problema, pero si pongo el nombre de alguna que ya este siendo usado me marca error de: DuplicateNameException
-quisiera que me orientaran como le puedo hacer, las columnas me las ingresa al final y necesito que las ingrese donde yo le digo y si esta siendo usado que no borre los datos que ahí se encuentran.
les agradezco su atención.
si sirve de algo les dejo el codigo:
Public Class frmLeerExcel
Private Shared HojaExcel As DataTable = Nothing
Private Shared Leyendo As Boolean = False
Private Shared PathExcel As String
Private Shared Fila1AsHeader As Boolean
Private Sub btnSeleccionarExcel_Click(sender As Object, e As EventArgs) Handles btnSeleccionarExcel.Click
Dim SeleccionArchivo As New OpenFileDialog
SeleccionArchivo.Filter = "Hojas Excel 2003|*.xls| Hojas Excel |*.xlsx"
If SeleccionArchivo.ShowDialog = Windows.Forms.DialogResult.OK Then
PathExcel = SeleccionArchivo.FileName
Fila1AsHeader = chkFila1Header.Checked
Dim Tareas As New Threading.Thread(AddressOf LeerExcel)
Tareas.Start()
Me.Enabled = False
Me.Timer1.Enabled = True
Leyendo = True
End If
End Sub
Private Sub LecturaTerminada()
dgvExcel.DataSource = HojaExcel
End Sub
Sub LeerExcel()
HojaExcel = ConvertExcel.convertirExcel2DataTable(PathExcel, Fila1AsHeader)
Leyendo = False
End Sub
Private Sub Timer1_Tick(sender As Object, e As EventArgs) Handles Timer1.Tick
If Leyendo Then
lblLeyendo.Visible = True
pbLeyendo.Visible = True
pbLeyendo.Maximum = ConvertExcel.TotalRegistro
If ConvertExcel.RegistroActual <= ConvertExcel.TotalRegistro Then
pbLeyendo.Value = ConvertExcel.RegistroActual
End If
Else
Timer1.Enabled = False
lblLeyendo.Visible = False
pbLeyendo.Visible = False
Me.Enabled = True
LecturaTerminada()
End If
End Sub
Private Sub btnGuardarArchivo_Click(sender As Object, e As EventArgs) Handles btnGuardarArchivo.Click
Dim SeleccionArchivo As New SaveFileDialog
If SeleccionArchivo.ShowDialog = Windows.Forms.DialogResult.OK Then
ConvertExcel.ExportToExcelFast(HojaExcel, SeleccionArchivo.FileName, True)
End If
End Sub
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles insertar.Click
HojaExcel.Columns.Add(columna.Text, GetType(String))
dgvExcel.DataSource = Nothing
dgvExcel.ClearSelection()
dgvExcel.DataSource = HojaExcel
End Sub
End Class
Valora esta pregunta


0