 |
Club Builder Foro de C++Builder en español
|
| Ver tema anterior :: Ver tema siguiente |
| Autor |
Mensaje |
yao_13 Master


Registrado: 29 Jul 2003Mensajes: 226
|
Publicado: Mar 01 Sep, 2009 9:53 pm Asunto: Salvar Excel |
|
|
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 |
|
 |
_Leo Site Admin

Registrado: 11 Ago 2002Mensajes: 1875Ubicación: Lanzarote - Islas Canarias (España)
|
Publicado: Mie 02 Sep, 2009 3:16 am Asunto: |
|
|
| 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 |
|
 |
yao_13 Master


Registrado: 29 Jul 2003Mensajes: 226
|
Publicado: Mie 02 Sep, 2009 9:48 pm Asunto: |
|
|
Muchas Gracias _Leo...como siempre, salvando el día. _________________ Sin pena, ni gloria |
|
| Volver arriba |
|
 |
bosoft Master

Registrado: 23 Oct 2005Mensajes: 342
|
Publicado: Jue 06 Nov, 2014 9:24 am Asunto: Error al guardar fechas |
|
|
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 |
|
 |
|
|
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.
|