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 

Salvar Excel

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

Hola, he buscado en el foro, pero solo se habla de salvar los archivos Excel con un nombre.

Pero como puedes Salvar un archivo Excel con el mismo nombre?; es decir, Abrir el archivo, escribir en él, salvarlo y volverlo a Cerrar?

He tratado con :
Código:
Exec(Procedure("Save");


Pero me dice que ese metodo no Existe.

Alguna idea?

Saludos.
_________________
Sin pena, ni gloria
Volver arriba
Ver perfil de usuario Enviar mensaje privado Enviar email
Mensaje    Asunto: Responder citando

Código:
      // Creamos una instancia de Excel
   Variant excel = CreateOleObject("Excel.Application");
   excel.OlePropertySet("Visible", false);

      // Abrimos un archivo
   Variant libros = excel.OlePropertyGet("Workbooks");
   libros.OleFunction("Open", WideString("D:\\prueba.xls"));
   Variant libro = excel.OlePropertyGet("ActiveWorkbook");

      // Escribimos algo en la primera celda de la hoja activa
   Variant hoja = excel.OlePropertyGet("ActiveSheet");
   hoja.OlePropertySet("Cells", 1, 1, "PRUEBA");

      // Guardamos los cambios y cerramos Excel
   libro.OleProcedure("Save");        // <-------------------
   excel.OleProcedure("Quit");

(Probado con las versiones 6 y 2010 en Excel 2007)
Volver arriba
Ver perfil de usuario Enviar mensaje privado
Mensaje    Asunto: Responder citando

Muchas Gracias _Leo...como siempre, salvando el día.
_________________
Sin pena, ni gloria
Volver arriba
Ver perfil de usuario Enviar mensaje privado Enviar email
Mensaje    Asunto: Error al guardar fechas Responder citando

Hola de nuevo
Después de muchos años usando esta técnica, ahora me ha aparecido un fallo. La rutina es casi calcada a la que nos mostró en este post _Leo (gracias infinitas por tu gran paciencia y tu mayor sapiencia) pero al guardar una fecha, cambia el día y el mes (¿sistema americano?) siempre que el resultado sea correcto, Veamos:
Código:
     // Escribimos algo en la primera celda de la hoja activa
   Variant hoja = excel.OlePropertyGet("ActiveSheet");
   String Valor="01/09/2014";
   hoja.OlePropertySet("Cells", 1, 1, Valor.c_str());

Pues bien, el resultado de la celda 1,1 es 09/01/2014
Si la fecha es 15/09/2014, el resultado en celda es el correcto (15/09/2014), ya que la fecha 09/15/2014 seria errónea. Creo que es por eso

La solución (temporal) la he encontrado poniendo las celdas que van a recoger la fecha en modo texto
Código:
hoja.OlePropertyGet("Range", "A1:A50").OlePropertySet("NumberFormat", "@");


Mi pregunta: ¿hay alguna solución mas "formal"?

Saludos

PD: por si alguien tiene dudas, las celdas en el fichero origen están en modo general
Volver arriba
Ver perfil de usuario Enviar mensaje privado
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.