excel

10/10/2005 - 09:31 por Oscar Rodriguez | Informe spam
Hola

Utilizando vb .net, como puedo crear una hoja de excel con varias pestañas,
y como le indico en que pestaña tengo que grabar?

Saludos

Preguntas similare

Leer las respuestas

#1 SoftJaén
10/10/2005 - 12:49 | Informe spam
"Oscar Rodriguez" escribió:

Utilizando vb .net, como puedo crear una hoja de excel con
varias pestañas, ...



Hola, Oscar:

Con lo de "varias pestañas", me imagino que te estarás refiriendo a crear un
nuevo libro de trabajo de Excel (Libro1.xls), con varias hojas de cálculo
(Hoja1, Hoja2, Hoja3, etc.).

Si es así, deberás de utilizar en tu solución .net, una referencia COM a la
biblioteca «Microsoft Excel x.0 Object Library», e importar el espacio de
nombres «Microsoft.Office.Interop».

Seguidamente utilizarías el siguiente código para crear un nuevo libro de
trabajo:

Dim oExcel As Excel.Application
Dim oBook As Excel.Workbook

' Creamos un nuevo libro de trabajo de Excel.
oExcel = New Excel.Application
oBook = oExcel.Workbooks.Add

' Guardamos el libro de trabajo, y cerramos Excel.
oBook.SaveAs("C:\Mis documentos\Libro25.xls")
oBook = Nothing
oExcel.Quit()
oExcel = Nothing

' Obligamos a que se lleve a cabo la
' recolección de elementos no utilizados.
GC.Collect()

El nuevo libro de trabajo se creará con tantas hojas de cálculo como tengas
establecidas en las Opciones de Microsoft Excel, concretamente en el cuadro
«Número de hojas en nuevo libro» de la ficha «General». Por defecto, dicho
valor es 3, por lo que los nuevos libros que se creen, tendrán tres hojas de
cálculo.

No obstante, si deseas añadir más hojas de cálculo al nuevo libro de
trabajo, puedes utilizar el método «Add» de la colección «Sheets», de un
objeto «Excel.Workbook»:

' Añadimos tres hojas de cálculo más a la colección Sheets
' antes de guardar el libro de trabajo
'
oBook.Sheets.Add()
oBook.Sheets.Add()
oBook.Sheets.Add()

... y como le indico en que pestaña tengo que grabar?



Para indicar la hoja de cálculo (pestaña) donde deseas trabajar, tendrás que
crear un objeto «Excel.Worksheet» para referenciar la hoja de cálculo:

Dim oSheet As Excel.Worksheet

' Referenciamos el objeto Excel.Worksheet
oSheet = CType(oBook.Worksheets(1), Excel.Worksheet)

' Añadimos los datos a las celdas de la primera
' hoja de cálculo del nuevo libro de trabajo.
With oSheet
.Range("A1").Value = "Apellidos"
.Range("B1").Value = "Nombre"
.Range("A1:B1").Font.Bold = True
.Range("A2").Value = "Rodriguez"
.Range("B2").Value = "Oscar"
End With

Por supuesto, todo éste código lo deberás de ejecutar antes de guardar y
cerrar el libro de trabajo, tal y como te he indicado en el ejemplo
anterior.

Te advierto que el código anterior lo he probado utilizando la referencia a
la versión 11.0 de la biblioteca de Excel, la cual se corresponde con
Microsoft Excel 2003, por lo que no te puedo indicar si trabaja igual de
bien con otra versión anterior de Excel.

Para más información sobre cómo trabajar con Excel desde Visual Basic .NET,
te remito a la lectura del siguiente artículo de la Base del Conocimiento
(en inglés):

How to automate Microsoft Excel from Visual Basic .NET
http://support.microsoft.com/defaul...-US;301982

Un saludo

Enrique Martínez
[MS MVP - VB]

Nota informativa: La información contenida en este mensaje, así como el
código fuente incluido en el mismo, se proporciona «COMO ESTÁ», sin
garantías de ninguna clase, y no otorga derecho alguno. Usted asume
cualquier riesgo al poner en práctica, utilizar o ejecutar lo recomendado o
sugerido en el presente mensaje.
Respuesta Responder a este mensaje
#2 Javier Rojas Goñi/ Parse Software
13/10/2005 - 14:58 | Informe spam
Como alternativa a lo que plantea Enrique, puedes usar OleDB para abrir la
planilla excel como si fuera una base de datos, en esta analogía las hojas
son las tablas, es decir al crear una nueva tabla creas una nueva hoja. Las
sentiencias de DDL que uno usaría normalmente están soportadas y funciona
perfectamente.

Javier Rojas Goñi
PARSE Software Chile
-

56-32-666366


-

"SoftJaén" escribió en el mensaje
news:%
"Oscar Rodriguez" escribió:

Utilizando vb .net, como puedo crear una hoja de excel con
varias pestañas, ...



Hola, Oscar:

Con lo de "varias pestañas", me imagino que te estarás refiriendo a crear
un
nuevo libro de trabajo de Excel (Libro1.xls), con varias hojas de cálculo
(Hoja1, Hoja2, Hoja3, etc.).

Si es así, deberás de utilizar en tu solución .net, una referencia COM a
la
biblioteca «Microsoft Excel x.0 Object Library», e importar el espacio de
nombres «Microsoft.Office.Interop».

Seguidamente utilizarías el siguiente código para crear un nuevo libro de
trabajo:

Dim oExcel As Excel.Application
Dim oBook As Excel.Workbook

' Creamos un nuevo libro de trabajo de Excel.
oExcel = New Excel.Application
oBook = oExcel.Workbooks.Add

' Guardamos el libro de trabajo, y cerramos Excel.
oBook.SaveAs("C:\Mis documentos\Libro25.xls")
oBook = Nothing
oExcel.Quit()
oExcel = Nothing

' Obligamos a que se lleve a cabo la
' recolección de elementos no utilizados.
GC.Collect()

El nuevo libro de trabajo se creará con tantas hojas de cálculo como
tengas
establecidas en las Opciones de Microsoft Excel, concretamente en el
cuadro
«Número de hojas en nuevo libro» de la ficha «General». Por defecto, dicho
valor es 3, por lo que los nuevos libros que se creen, tendrán tres hojas
de
cálculo.

No obstante, si deseas añadir más hojas de cálculo al nuevo libro de
trabajo, puedes utilizar el método «Add» de la colección «Sheets», de un
objeto «Excel.Workbook»:

' Añadimos tres hojas de cálculo más a la colección Sheets
' antes de guardar el libro de trabajo
'
oBook.Sheets.Add()
oBook.Sheets.Add()
oBook.Sheets.Add()

... y como le indico en que pestaña tengo que grabar?



Para indicar la hoja de cálculo (pestaña) donde deseas trabajar, tendrás
que
crear un objeto «Excel.Worksheet» para referenciar la hoja de cálculo:

Dim oSheet As Excel.Worksheet

' Referenciamos el objeto Excel.Worksheet
oSheet = CType(oBook.Worksheets(1), Excel.Worksheet)

' Añadimos los datos a las celdas de la primera
' hoja de cálculo del nuevo libro de trabajo.
With oSheet
.Range("A1").Value = "Apellidos"
.Range("B1").Value = "Nombre"
.Range("A1:B1").Font.Bold = True
.Range("A2").Value = "Rodriguez"
.Range("B2").Value = "Oscar"
End With

Por supuesto, todo éste código lo deberás de ejecutar antes de guardar y
cerrar el libro de trabajo, tal y como te he indicado en el ejemplo
anterior.

Te advierto que el código anterior lo he probado utilizando la referencia
a
la versión 11.0 de la biblioteca de Excel, la cual se corresponde con
Microsoft Excel 2003, por lo que no te puedo indicar si trabaja igual de
bien con otra versión anterior de Excel.

Para más información sobre cómo trabajar con Excel desde Visual Basic
.NET,
te remito a la lectura del siguiente artículo de la Base del Conocimiento
(en inglés):

How to automate Microsoft Excel from Visual Basic .NET
http://support.microsoft.com/defaul...-US;301982

Un saludo

Enrique Martínez
[MS MVP - VB]

Nota informativa: La información contenida en este mensaje, así como el
código fuente incluido en el mismo, se proporciona «COMO ESTÁ», sin
garantías de ninguna clase, y no otorga derecho alguno. Usted asume
cualquier riesgo al poner en práctica, utilizar o ejecutar lo recomendado
o
sugerido en el presente mensaje.



Respuesta Responder a este mensaje
#3 SoftJaén
13/10/2005 - 15:27 | Informe spam
"Javier Rojas Goñi/ Parse Software" escribió:

Como alternativa a lo que plantea Enrique, puedes usar OleDB
para abrir la planilla excel como si fuera una base de datos, ...



Hola, Javier:

Para crear un nuevo libro de trabajo y una hoja de cálcula, por supuesto que
puede utilizar el ISAM de Excel junto con el proveedor OleDb, tal y como lo
explico en el artículo que indico más abajo, que aunque los ejemplos están
escritos para ser ejecutados con Visual Basic clásico, se pueden adaptar
perfectamente a ADO .NET, porque las consultas SQL son las mismas:

Trabajar con ADO, DAO y Excel
http://www.mvp-access.com/softjaen/..._excel.htm

Un saludo

Enrique Martínez
[MS MVP - VB]

Nota informativa: La información contenida en este mensaje, así como el
código fuente incluido en el mismo, se proporciona «COMO ESTÁ», sin
garantías de ninguna clase, y no otorga derecho alguno. Usted asume
cualquier riesgo al poner en práctica, utilizar o ejecutar lo recomendado o
sugerido en el presente mensaje.
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida