|
Espero poder ayudarte
Hola que tal! yo igual pasé por una situación parecida y lo que hice fue lo siguiente: utilicé un objeto Ole...
El código es el siguiente:
//Necesitas primero crear un objeto que te permita acceder a excel, para eso declararemos las siguientes variables
Variant Excel,Libros,Libro,Hojas,Hoja; //Variant es un tipo de variable
//Con esto abres excel y lo haces visible
Excel=CreateOleObject("Excel.Application");
Excel.OlePropertySet("Visible",true);
//Ahora necesitas crear un acceso para acceder al objeto libro
Libros=Excel.OlePropertyGet("Workbooks");
//Para acceder a un libro en específico, por ejemplo el Libro1...(libro se refiere
//al archivo)
Libro=Libros.OlePropertyGet("Item",1);
//Ya que podemos acceder al libro, ahora necesitamos crear un acceso a las
//hojas
Hojas=Libro.OlePropertyGet("Worksheets");
//Ahora selecciono la hoja con la que quiero trabajar
Hoja=Hojas.OlePropertyGet("Item",1); //Aqui estoy agarrando la hoja 1
//tal vez esto te sirva también, por default se genera un archivo de tres
//hojas, si necesitas agregar más usa esta línea:
Hojas.OleProcedure("Add");
//Par etiquetar el nombre de las hojas
Hojas.OlePropertyGet("Item",1).OlePropertySet("Name","MiHoja");
//Ahora que ya tengo acceso a la hoja que quiero, puedo fácilmente
//manipular mis celdas...
//En este ejemplo, hoja se refiere a la hoja uno como se lo asignamos
//anteriormente, accedemos a su propiedad Cells, y donde dice ítem
//tiene otros dos parámetros(2 y 1) pues estos son las coordenadas de las
//celdas en excel (el 2 hace referencia a filas, el 1 es columnas, osea las letras), en value pues va lo que le quieras pasar a la celda, eso si en cadena
Hoja.OlePropertyGet("Cells").OlePropertyGet("Item",2,1).OlePropertySet("Value",StringGrid1->Cells[0][0].c_str());
//este último código lo puedes meter en un for o algo así para pasarlo, en las
//coordenadas también pueden ir variables
Espero que te sirva de ayuda! Suerte!
|