Club Builder - Foros de discusión Club Builder
Foro de C++Builder en español
 
 FAQFAQ   BuscarBuscar   MiembrosMiembros   Grupos de UsuariosGrupos de Usuarios   RegistrarseRegistrarse 
 PerfilPerfil   Entra para ver tus mensajes privadosEntra para ver tus mensajes privados   EntrarEntrar 

Insertar imagenes en Excel

 
Publicar nuevo tema   Responder al tema    Foros de discusión -> Consultas
Ver tema anterior :: Ver tema siguiente  
Autor Mensaje
Mensaje    Asunto: Insertar imagenes en Excel Responder citando

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
Mensaje    Asunto: Responder citando

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
Ver perfil de usuario Enviar mensaje privado
Mensaje    Asunto: Responder citando

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
Mensaje    Asunto: Bordes Responder citando

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
Mostrar mensajes de anteriores:   
Cambiar a:  
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


Hosting WordPress Indedmedia desde 3,99 €
© 2002–2026 Club Builder · Funciona con phpBB.