Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Otros entornos y lenguajes > C++ Builder
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 05-08-2012
odiseeus odiseeus is offline
Miembro
NULL
 
Registrado: jun 2011
Posts: 31
Poder: 0
odiseeus Va por buen camino
Exclamation Problema para cerrar Correctamente archivo de Excel

buen dia, de nuevo yo molestando...
bueno seré lo mas explicito posible...
para exportar unas tablas con datos a un archivo de excel he encontrado una forma muy cómoda para hacerlo , pero de esa misma forma no puedo darle la instrucción para cerrar bien el archivo de tal manera que pueda abrirlo aparte con el mismo excel sin que me diga que abre en solo lectura por estar en uso de otro programa (el mio ... ) y por lo mismo me deja "colgado" el excel al cerrar mi programa...
ACLARACIONES: la intension es mantener todo el tiempo mi programa ejecutandose... por eso no puedo estar cerrandolo (para liberar el archivo) cada vez que creo un nuevo archivo de excel.

aqui va el codigo como creo el objeto "tipo excel"

Código:
// la declaracion correspondiente
Variant excelArchivo, excelHoja, excelCelda;
//abrir excel
excelArchivo = Variant::CreateObject("Excel.Application");
//al abrir no lo dejo visible asi 
excelArchivo.OlePropertySet("Visible", false);
//crear por adicion el libro.
excelArchivo.OlePropertyGet("Workbooks").OleProcedure("Add");
//abres la hoja1 en este caso llamada reporte
excelHoja = excelArchivo.OlePropertyGet("Sheets", WideString("Hoja1").Copy());
//y ahora con el cual manejare las celdas
excelCelda = excelHoja.OlePropertyGet("Cells"); 
//.... procedimientos .... (aqui tambien hay una manera muy comoda de "moverse por las celdas" que es la siguiente)
excelCelda.OlePropertyGet("Cells", 1,1).OlePropertySet("Value",WideString("texto ingresado a la celda en UnicodeString").Copy());
// en la linea anterior aclaro que se debe ingresar en WideString que es el que acepta Excel
// (yo uso C++ Builder XE2, probar en otras versiones)
//despues guardo el archivo asi
excelArchivo.OlePropertySet("DisplayAlerts", false);
excelArchivo.OlePropertyGet("Workbooks").OlePropertyGet("Item",1).OleProcedure("SaveAs", WideString("C:\\archivo.xlsx").Copy());
//cada quien lo ubica y nombra a gusto, aclaro que la carpeta donde se guarde debe existir
// y termino asi
excelArchivo = Unassigned;
... sonara a loco.. pero creo que despues de guardarlo (el archivo excel en el código anterior) sirve esta linea para lo que quiero... la probe de primerazo y me sirvio, pero toca verificar en otras situaciones

Código:
excelArchivo.OlePropertyGet("Workbooks").OlePropertyGet("Item",1).OleProcedure("Close");
que pena pero cuando estaba terminando de redactar se me ocurrio, igual a alguien le puede servir...

PDT: pido a un moderador que si es necesario me corriga el titulo del post, pues no se como mas colocarle... éxitos y buona vita!
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Problema para cerrar programa desde Api angelp4492 API de Windows 2 18-12-2007 18:10:03
Problemas para abrir archivo EXCEL marceloalegre Varios 1 18-09-2007 19:40:39
Problema con traspaso de archivo jpg o bmp a excel vicvil Servers 4 09-08-2006 22:40:43
como puedo hacer para cambiar un archivo de excel con versión 2.1 a versión 8.0 RONPABLO Servers 4 23-01-2006 06:02:38
Mostrar y cerrar correctamente los formularios serhasae Varios 3 25-06-2005 19:55:25


La franja horaria es GMT +2. Ahora son las 17:24:39.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi