¿Cómo puedo abrir un archivo excel en un grid de visual basic para guardarlo después en sql?

Hola sabes necesito abrir un archivo excel en un grid de visual basic, luego lo debo guardar en sql pero primero lo primero... Gracias...

1 respuesta

Respuesta
1
Puedes intentar primero con un enlace de excel,
Checa la siguiente rutina y adáptala para que funcione en visual basic para editar el archivo.
Private Sub Exporta_Excel()
Dim oObjetoExcel As Object
Dim iCol As Integer
Dim iContRengDatos As Integer
Dim iContRengExcel As Integer
Dim iResult As Integer
Dim pszCelda As Variant
On Local Error GoTo Muestra_Error
'Titulo del diálogo
mdiPrincipal!dlgPrinter.DialogTitle = "Exportar Archivo..."
'Se inicializa el Nombre del Archivo
mdiPrincipal!dlgPrinter.FileName = NULL_STRING
mdiPrincipal!dlgPrinter.CancelError = False
'Tamaño Máximo del Archivo
mdiPrincipal!dlgPrinter.MaxFileSize = 30000
'Tipos de Archivos
mdiPrincipal!dlgPrinter.Filter = "Excel (*.xls)|*.xls"
'Extensión por Default
mdiPrincipal!dlgPrinter.DefaultExt = ".xls"
'Banderas
mdiPrincipal!dlgPrinter.FLAGS = cdlOFNHideReadOnly Or cdlOFNPathMustExist Or cdlOFNCreatePrompt Or cdlOFNOverwritePrompt Or cdlOFNNoReadOnlyReturn
mdiPrincipal.stsBarMdi.Panels(1).Text = "Salvar archivo..."
'Acción de Salvar el Archivo
mdiPrincipal!dlgPrinter.ShowSave
If (mdiPrincipal!dlgPrinter.FileName <> NULL_STRING) Then
mdiPrincipal.stsBarMdi.Panels(1).Text = "Estableciendo Comunicación con Microsoft Excel..."
'Se crea el Objeto
Set oObjetoExcel = CreateObject("Excel.sheet")
mdiPrincipal.stsBarMdi.Panels(1).Text = "Comunicación Establecida"
'Se posiciona al Spred de Datos en el primer renglón
sprDatos.Row = NULL_INTEGER
'Se asigna el ancho de las columnas
For iCol = 1 To sprDatos.MaxCols
oObjetoExcel.worksheets(1).Cells(iCol).ColumnWidth = sprDatos.ColWidth(iCol)
Next
mdiPrincipal.stsBarMdi.Panels(1).Text = "Exportando Datos..."
'Se exportan los datos del Spread de Parámetros
iContRengExcel = 1
For iContRengDatos = 1 To sprParametros.MaxRows
For iCol = 1 To sprParametros.MaxCols
iResult = sprParametros.GetText(iCol, iContRengDatos, pszCelda)
oObjetoExcel.worksheets(1).Cells(iContRengExcel, iCol).Value = pszCelda
Next
iContRengExcel = iContRengExcel + 1
Next
'Se exportan los datos del Spread de Datos
For iContRengDatos = NULL_INTEGER To sprDatos.MaxRows
For iCol = 1 To sprDatos.MaxCols
iResult = sprDatos.GetText(iCol, iContRengDatos, pszCelda)
oObjetoExcel.worksheets(1).Cells(iContRengExcel, iCol).Value = pszCelda
Next
iContRengExcel = iContRengExcel + 1
Next
mdiPrincipal.stsBarMdi.Panels(1).Text = "Exportación Finalizada"
'Se salva a un Archivo el Objeto
oObjetoExcel.SaveAs mdiPrincipal!dlgPrinter.FileName
End If
mdiPrincipal.stsBarMdi.Panels(1).Text = "Listo"
Exit Sub
Muestra_Error:
Call Muestra_Error_OLE
Exit Sub
End Sub

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas