Excel y C#

04/12/2008 - 13:51 por Francisco Matamoros | Informe spam
Hola a todos, estoy intentado rellenar una hoja de excel que el usuario
elige y donde escribe "variables" del tipo
[A1], [B7] y que yo en mi programa tengo perfectamente definidas y sé sus
valores.
Cuando abro con ADO Excel, el select no sé como hacerlo pues no sé como se
llama la hoja del libro que elija el usuario puesto que es el usuario el que
las diseña a su gusto.
Tendría que saber cómo se llaman las hojas que componen el xls, y en un
combo que me eligiera cuál quiere rellenar, o si quiere rellenar varias, el
caso es que en cualquier caso no sé como se llaman las hojas y las necesito
para el select.
Una vez que pudiera resolver lo anterior, y haciendo pruebas con un select
"a piñón" del estilo "Select * from [Hoja1$]" me trata el título del
informe, p.e. BALANCE DE SUMAS Y SALDOS, como nombre de columna y no me
interesa eso.
En definitiva lo he hecho en Excel porque se diseña mejor por el usuario,
puede poner tantas filas y columnas como quiera y únicamente rellenar con
"variables" del tipo que he escrito antes los datos que yo le relleno desde
el programa, pero no encuentro una salida a esto.
Si pudiera leer todo el contenido de la excel utilizando sus filas y
columnas y pudiendo hacer referencias a ellas para ir buscando texto del
tipo [XX] y yo poder cambiarlo estaría muy satisfecho.
A ver si alguien ha hecho algo parecido y me puede orientar.
Perdón por el ladrillazo y saludos.

Preguntas similare

Leer las respuestas

#6 Francisco Matamoros
04/12/2008 - 17:48 | Informe spam
Gracias por tu tiempo

"SoftJaén" escribió en el mensaje
news:
"Francisco Matamoros" escribió:

No sé si depende de la versión 2003 que es la que yo utilizo, pero
no me deja ni compilar esta línea:

DataTable dt = objConn.GetSchema("TABLES");

c:\visual\galcon\libroscontables\formemisionmanual.cs(231,19):
error CS0117: 'System.Data.OleDb.OleDbConnection'
no contiene una definición para 'GetSchema'



Claro que depende de la versión. El método «GetSchema» se introdujo en la
versión 2.0 del marco de trabajo de .net, es decir, con Visual Studio
2005.

Pues si estás utilizando Visual Studio 2003, ignoro en estos momentos cómo
puedes recuperar la información de esquema del libro de trabajo de Excel.

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
#7 Francisco Matamoros
04/12/2008 - 18:07 | Informe spam
Suponiendo que tengo resuelto lo anterior, que estoy buscándome la vida, y
teniendo una hoja1 en el libro de Excel, y teniendo el dataset en un grid,
quiero que cuando salga de la pantalla se cambie la excel con lo que tenga
en el grid. Es decir, ¿como hago un update a la excel que acabo de leer y
que tengo en el dataset?
Gracias por la paciencia.

"Francisco Matamoros" escribió en el mensaje
news:
Hola a todos, estoy intentado rellenar una hoja de excel que el usuario
elige y donde escribe "variables" del tipo
[A1], [B7] y que yo en mi programa tengo perfectamente definidas y sé sus
valores.
Cuando abro con ADO Excel, el select no sé como hacerlo pues no sé como se
llama la hoja del libro que elija el usuario puesto que es el usuario el
que las diseña a su gusto.
Tendría que saber cómo se llaman las hojas que componen el xls, y en un
combo que me eligiera cuál quiere rellenar, o si quiere rellenar varias,
el caso es que en cualquier caso no sé como se llaman las hojas y las
necesito para el select.
Una vez que pudiera resolver lo anterior, y haciendo pruebas con un select
"a piñón" del estilo "Select * from [Hoja1$]" me trata el título del
informe, p.e. BALANCE DE SUMAS Y SALDOS, como nombre de columna y no me
interesa eso.
En definitiva lo he hecho en Excel porque se diseña mejor por el usuario,
puede poner tantas filas y columnas como quiera y únicamente rellenar con
"variables" del tipo que he escrito antes los datos que yo le relleno
desde el programa, pero no encuentro una salida a esto.
Si pudiera leer todo el contenido de la excel utilizando sus filas y
columnas y pudiendo hacer referencias a ellas para ir buscando texto del
tipo [XX] y yo poder cambiarlo estaría muy satisfecho.
A ver si alguien ha hecho algo parecido y me puede orientar.
Perdón por el ladrillazo y saludos.

Respuesta Responder a este mensaje
#8 SoftJaén
04/12/2008 - 18:30 | Informe spam
"Francisco Matamoros" preguntó:

¿como hago un update a la excel que acabo de leer y que tengo en el
dataset?



Con los datos existentes en un objeto DataSet, va a ser un poco complicado,
porque tendrías que configurar un objeto OleDbDataAdapter para enviar las
actualizaciones al archivo de Excel, y configurar automáticamente un
adaptador de datos, con un origen de datos donde no existen claves
principales, pues como que va a ser complicado de hacerlo.

Cuando se trabaja con el ISAM de Excel, lo habitual es ejecutar directamente
las consultas SQL de acción, mediante el método «ExecuteNonQuery» de un
objeto OleDbCommand debidamente configurado.

En el siguiente artículo encontrarás amplia información sobre el ISAM de
Excel del motor Microsoft Jet:

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

El articulo fue escrito en su día para los usuarios de Visual Basic 6.0,
pero la teoría continua siendo la misma.

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 pregunta AnteriorRespuesta Tengo una respuesta
Search Busqueda sugerida