 |
Club Builder Foro de C++Builder en español
|
| Ver tema anterior :: Ver tema siguiente |
| Autor |
Mensaje |
JR Invitado
|
Publicado: Mie 25 Jun, 2003 1:07 pm Asunto: Insertar imagenes en Excel |
|
|
Hola
Estoy exportando unos datos de una aplicación a excel. Ya tengo los textos, los bordes (Gracias Leo), el formato, etc, etc
Ahora me gustaría instertarle el logo de la empresa, pero me vuelvo a
tropezar.
Despues de enlazar con la aplicación y con la hoja, hago lo siguiente
void TExcell::Addimagen(AnsiString rango)
{
Variant hojax;
hojax=xlSheet.Exec(PropertyGet("Range")<<rango);
hojax=hojax.Exec(PropertyGet("Shapes"));
hojax.Exec(Procedure("AddPicture")<<"c:\logo_exaf.bmp");
}
Me da error en tiempo de ejecución, en la línea marcada, diciendo que el objeto shapes no pertenece al Ole Obj. (mas o menos).
También lo he intentado con la propiedad shape de Sheet, pero nada, me
da fallo en la linea de cargar el archivo de imagen, incluso pasandole todo tipo de parametros (segun la especificacion), pero me da error, o porque le faltan parametro o por que le sobran....
Tiene alguien alguna idea o algun método aunque sea distinto de insertar imágenes
Un saludo y gracias de antemano una vez mas.[/b] |
|
| Volver arriba |
|
 |
_Leo Site Admin

Registrado: 11 Ago 2002Mensajes: 1875Ubicación: Lanzarote - Islas Canarias (España)
|
Publicado: Mie 25 Jun, 2003 2:30 pm Asunto: |
|
|
Hola, si te fijas estas asignando Range a hojax que luego usas para obtener el conjunto Shapes, el cual no existe en Range. Y el otro detalle es que usas AddPicture con un solo parámetro y tiene varios más y en este caso son todos obligatorios. A ver si te sirve este pequeño ejemplo:
| Código: | // Para el ejemplo utilizamos una instancia abierta de excel
Variant excel = GetActiveOleObject("Excel.Application");
// Obtenemos la hoja activa
Variant hoja = excel.Exec(PropertyGet("ActiveSheet"));
Variant shapes = hoja.Exec(PropertyGet("Shapes"));
// Esta parte solo es necesaria si queremos averiguar las
// coordenadas de las celdas para ajustar a ellas la imagen
Variant rango = hoja.Exec(PropertyGet("Range") << "B2:D11");
int x = rango.Exec(PropertyGet("Left"));
int y = rango.Exec(PropertyGet("Top"));
int ancho = rango.Exec(PropertyGet("Width"));
int alto = rango.Exec(PropertyGet("Height"));
// Añadimos la imagen (todos los parametros son obligatorios)
shapes.Exec(Procedure("AddPicture")
<< "c:\\_\\imagen.bmp" // archivo de imagen
<< true // vincular archivo ?
<< true // guardar imagen en documento ?
<< x << y << ancho << alto); // coordenadas en pixels |
Saludos:
_Leo |
|
| Volver arriba |
|
 |
JR Invitado
|
Publicado: Jue 26 Jun, 2003 7:07 am Asunto: |
|
|
Gracias una vez mas !
Tengo que decirte que tiene bastante sentido lo que me has comentado de los errores, pero en la referencia de los objetos de excel en VB, puedo jurar que he leido que range tiene la propiedad "conjunto de shapes". Pero logicamente, por el error que me da he de sospechar que no es asi.
En el tema del paso de parametros tambien te puedo jurar que me daba problemas con el obj shapes perteneciente a sheet, incluso poniendo todos los parametros que me has comentado. Lo cierto es que hay dias
que es mejor no levartarse uno de la cama
Un saludo y gracias de nuevo |
|
| Volver arriba |
|
 |
Cerúleo Invitado
|
Publicado: Lun 30 Jun, 2003 2:05 pm Asunto: Bordes |
|
|
Hola JR.
Me gustaría que me ofrecieras información sobre cómo puedo exportar datos a excel, es decir, que me cuentes cómo has hecho lo que dices que has hecho. LLevo tiempo intentando hacer algo similar y nunca me he puesto en serio porque no sabía ni por dónde empezar.
Agradezco una respuesta. Si quieres o lo consideras necesario te envío mi dirección de correo elctrónico para que me mandes algún archivo de ejemplo.
Te doy las gracioas de antemano.
Un saludo.
Javier. |
|
| Volver arriba |
|
 |
|
|
No puedes publicar temas nuevos en este foro No puedes responder a temas en este foro No puedes editar tus mensajes en este foro No puedes borrar tus mensajes en este foro No puedes votar en las encuestas de este foro
|
© 2002–2026 Club Builder · Funciona con phpBB.
|