Leer cada una de las hojas de excel y su contenido en Visual Studio 2010

Estoy haciendo código en visual Studio 2010, con visual Basic

Quiero hacer leer un archivo excel elegido por el usuario, el dirá donde se encuentra ese archivo, lo he hecho con el método OpenFileDialog, pero no se como hacer leerlo he declaro una variable ARCHIVO, y he puesto

If OpenFileDialog1.ShowDialog() = System.Windows.Forms.DialogResult.OK Then
Archivo = (OpenFileDialog1.FileName)
End If

Luego encontré por ahí que había que crear la aplicación excel

oExcel = CreateObject("Excel.Application")
oBook = oExcel.Workbooks.Add
oSheet = oBook.Worksheets(1)

pero no se como decirle que archivo es un excel, algo así como

Archivo.oSheet = "Cuenta Enero" lee columnas filas y así

Y pues puse mi condicional si la hoja lleva por titulo Cuenta Enero leer su contenido, debo leer todas las hojas porque haré un resumen de ese archivo, pero mi cabeza hueca no da para mas
If (oSheet("Cuenta Enero")) Then

End If

Lo que necesito es decirle que me lea el excel que lo guarde según yo en la variabl ARCHIVO pues no puedo continuar con el código para leer el contenido de cada hoja. Ojala puedan ayudarme, orientarme o darme una idea para que pueda conitnuar, y he buscado en internet pero el código es en visual basic 6 y studio 2010 no acepta su sintaxis, ni set ni get y así.

1 Respuesta

Respuesta
1

Según entiendo lo que deseas hacer en abrir, ¿buscar y encontrar un archivo xlsx desde visual y luego hacer un resumen de lo que encuentres?

Si buscar archivo .xlsx Abrir un archivo excel existente(no es necesario abrirlo, mas bien me refiero leerlo, ya que el usuario no necesita ver el excel existente), se podría decir que es mi base de datos, desde ese excel existente voy a jalar información a otro archivo excel que tendrá tablas con los 10 datos mas sobresalientes, se podría decir que si es un resumen, pero no he llegado ahí, puesto que aun no he podido lograr hacer leer el excel existente, decirle selecciona del libroBase(excel que el usuario seleccionara de cualquier ruta) su Hoja1 y encuentra los 10 mayores rangos de la columna Precio y ponlos en el nuevo LibroExcel en la Hoja1 en la columna Prioridad.

Espero haberme explicado, gracias

OK

Primero buscaremos el archivo a seleccionar y luego lo recuperamos en una tabla

SET DEFA TO C:\CARPETA DE ARCHIVOS\
Local vArchivo
vArchivo=getfile("XLSX")
**--Si cancelamos la apertura
IF EMPTY(vArchivo)
RETURN .F.
ENDIF
*Selecciona las bases de datos
SET SAFETY OFF
SET DEFA TO c:\CARPETA DE TABLAS\
Close all
CLOSE DATABASES
vArchivo)
select 1
USE TABLA1 in 0 alias "TABLA1" exclusive
Index on X1+XX+XXX to mdmp
zap
APPEND FROM (vArchivo) TYPE XLS
GO TOP

En que lenguaje esta el código?que es DEFA

Visual studio 2010 me manda error con Set y get, no se si tal vez me haga falta alguna librería, referencia porque intente poner anteriormente set pero me lo elimina automáticamente, lo quita del código y con get me dice que no encuentra ek miembro publico GET en el tipo ApplicationClass

Esta en visual studio foxpro v. 6 hasta la 9

defa= set default to c:\blabla.......lo que significa es la ubicación o path de los archivos

¿En qué lo estas haciendo? visual basic, access, c++.....? Visual studio 2010 lleva varios programas.

Estoy utilizando el IDE Visual Studio 2010 con el lenguaje Visual Basic, aunque no se muy bien como esta el rollo, porque visual studio cambia algunas cosillas en la sintaxis de visual basic y me estoy dando de topes; y el archivo es excel, no tengo una base de datos, sql ni access, es solo del excel del cual sacare la info

Bien veamos si te funciona con este código hecho en visual studio 2008

Private Sub Export_Button_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles VIEW_Button.Click
Dim xlApp As Microsoft.Office.Interop.Excel.Application
Dim xlWorkBook As Microsoft.Office.Interop.Excel.Workbook
Dim xlWorkSheet As Microsoft.Office.Interop.Excel.Worksheet
Dim misValue As Object = System.Reflection.Missing.Value
Dim i As Integer
Dim j As Integer
xlApp = New Microsoft.Office.Interop.Excel.ApplicationClass
xlWorkBook = xlApp.Workbooks.Add(misValue)
xlWorkSheet = xlWorkBook.Sheets("sheet1")
For i = 0 To DataGridView1.RowCount - 2
For j = 0 To DataGridView1.ColumnCount - 1
For que As Integer = 1 To DataGridView1.Columns.Count
xlWorkSheet.Cells(1, que) = DataGridView1.Columns(que - 1).HeaderText
xlWorkSheet.Cells(i + 2, j + 1) = DataGridView1(j, i).Value.ToString()
Next
Next
Next
XlWorkSheet.SaveAs("D:\miarchivo.xlsx")
XlWorkBook. Close()
XlApp. Quit()
ReleaseObject(xlApp)
ReleaseObject(xlWorkBook)
ReleaseObject(xlWorkSheet)
MsgBox("You can find the file D:\vbexcel.xlsx")
End Sub
Private Sub releaseObject(ByVal obj As Object)
Try
System.Runtime.InteropServices.Marshal.ReleaseComObject(obj)
obj = Nothing
Catch ex As Exception
obj = Nothing
Finally
GC.Collect()
End Try
End Sub

También puedes hacerlo directamente en visual basic

Private Sub Command1_Click()
res = ShellExecute(Me.hwnd, "Open", "C:\MisArchivos\xls\datos.xlsx", "", "", 1)
End Sub

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas