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 

Añadir y Quitar Paginas (Sheets) en Excel

 
Publicar nuevo tema   Responder al tema    Foros de discusión -> Consultas
Ver tema anterior :: Ver tema siguiente  
Autor Mensaje
Mensaje    Asunto: Añadir y Quitar Paginas (Sheets) en Excel Responder citando

Saludos, He estado mirando por el foro y no he conseguido como añadir una pagina a un libro de excel, hay un ejemplo donde se crea con solo una pagina, jugando con los parametros he conseguido añadir un nuevo grafico y un nuevo macro, pero nada de una nueva pagina.

Agradezco de antemano cualquier ayuda.
Volver arriba
Ver perfil de usuario Enviar mensaje privado Enviar email
Mensaje    Asunto: Responder citando

Hola,

Revisa este post
https://cppbuilder.es/viewtopic.php?t=9405&highlight=excel
_________________
Un saludo
Rayder
Volver arriba
Ver perfil de usuario Enviar mensaje privado
Mensaje    Asunto: Responder citando

De ese link es donde tome el ejemplo, pensaba que el parametro pasado se referia al numero de paginas a insertar
Código:
//---------CREA EL LIBRO CON UNA SOLA HOJA
     xlBooks.Exec(Procedure("Add") << 1);

     //-------- crea el libro de la aplicacion con una sola hoja
     Variant xlBook = xlBooks.Exec(PropertyGet("Item") << 1);

La primera instruccion crea el libro con una hoja, pero si cambias el parametro a 2 te crea el libro con un grafico, y con el valor 3 con un macro.

Solucione la anexion de hojas con el siguente codigo:
Código:

    Variant vExcel = CreateOleObject("Excel.Application");//Acceso a Excel
    vExcel.Exec(PropertySet("Visible") << true); // Muestra App.
    vLibros = vExcel.Exec(PropertyGet("Workbooks"));//Acceso a Libros
    vLibros.Exec(Procedure("Add")<<1);//Crea Libro
    Variant vHojas = vExcel.Exec(PropertyGet("Worksheets"));//Acceso a Hojas
    vHojas.OleProcedure("Add");//Crea Hoja nueva
    vHoja = vExcel.Exec(PropertyGet("ActiveSheet"));//Toma hoja No necesario
    vHoja.Exec(PropertySet("Name")<< "Partida Nº "; //Renombra Hoja 

Bueno en otro hilo en paralelo salio mas informacion al respecto

https://cppbuilder.es/viewtopic.php?t=9405
Muchas gracias por tu interes Smile
Volver arriba
Ver perfil de usuario Enviar mensaje privado Enviar email
Mensaje    Asunto: Responder citando

Ambos enlaces son al mismo hilo.

El siguiente código lo encontre hace unos meses en este foro, simplemente lo que hace es generar un fichero excel, trabajando con los valores por omisión que tenga configurado el usuario en excel.
Código:

//-------- Abre EXCEL
Variant xlApp;
xlApp = CreateOleObject("Excel.Application");

//-------- hace EXCEL visible
xlApp.Exec(PropertySet("Visible") << true);

//-------- crea acceso al objeto 'libro'/workbook
Variant xlBooks = xlApp.Exec(PropertyGet("Workbooks"));



//-----------------------------------------------------------------------------------
//En este punto, no se pasa parámetro alguno, lo que excel interpreta,
//"por omision", normalmente 3 hojas si no se ha cambiado en las opciones

//-------- Crea un fichero nuevo
xlBooks.Exec(Procedure("Add"));

//-------- Nuevo libro con una sola hoja, independientemente de la configuracion del usuario
// xlBooks.Exec(Procedure("Add") << 1);
//-----------------------------------------------------------------------------------

// ... o abre uno existente
// xlBooks.Exec(Procedure("Open") << "C:\\directorio\\fichero.xls");

//-------- coge el primer libro de la aplicacion
Variant xlBook = xlBooks.Exec(PropertyGet("Item") << 1);

//-------- crea acceso al objeto 'hoja'/worksheets
Variant xlSheets = xlBook.Exec(PropertyGet("Worksheets"));

//-------- coge la primera hoja del libro
Variant xlSheet = xlSheets.Exec(PropertyGet("Item") << 1);

//-------- Trabajando con celdas...
Variant VRange;
//-------- Escribe texto en las primeras 3x3 celdas
VRange = xlSheet.Exec(PropertyGet("Range") << "A1");
VRange.Exec(PropertySet("Value") << "CeldaA1");
VRange = xlSheet.Exec(PropertyGet("Range") << "A2");
VRange.Exec(PropertySet("Value") << "CeldaA2");
VRange = xlSheet.Exec(PropertyGet("Range") << "A3");
VRange.Exec(PropertySet("Value") << "CeldaA3");
//------
VRange = xlSheet.Exec(PropertyGet("Range") << "B1");
VRange.Exec(PropertySet("Value") << "CeldaB1");
VRange = xlSheet.Exec(PropertyGet("Range") << "B2");
VRange.Exec(PropertySet("Value") << "CeldaB2");
VRange = xlSheet.Exec(PropertyGet("Range") << "B3");
VRange.Exec(PropertySet("Value") << "CeldaB3");
//------
VRange = xlSheet.Exec(PropertyGet("Range") << "C1");
VRange.Exec(PropertySet("Value") << "CeldaC1");
VRange = xlSheet.Exec(PropertyGet("Range") << "C2");
VRange.Exec(PropertySet("Value") << "CeldaC2");
VRange = xlSheet.Exec(PropertyGet("Range") << "C3");
VRange.Exec(PropertySet("Value") << "CeldaC3");

//-------- Borra las primeras 2 x 2 celdas
VRange = xlSheet.Exec(PropertyGet("Range") << "A1:B2");
VRange.Exec(Function("ClearContents"));

//-------- Guarda el libro actual
xlBook.Exec(Procedure("SaveAs") << "c:\\fichero.xls");



Tan solo ponlo en un boton y ejecutalo.

Incluye lo siguiente:
#include <Comobj.hpp>
#pragma link "Excel_2K_SRVR"

Por otro lado, las opciones que comentas para generar graficos y macros no las conocia, pues nunca las había necesitado. Siempre se aprende algo nuevo.

Y si en algo puedo ayudar, ya sabes.
_________________
Un saludo
Rayder
Volver arriba
Ver perfil de usuario Enviar mensaje privado
Mensaje    Asunto: Responder citando

Gracias, estoy recopilando informacion sobre excel a ver si tengo tiempo de hacer un componente que facilite la importacion/exportacion de datos, tengo uno pero es muy elemental y quisiera ponerle mas opciones.

Gracias de nuevo Smile
Volver arriba
Ver perfil de usuario Enviar mensaje privado Enviar email
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.