Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Servers
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 13-10-2005
Martha Ayala Martha Ayala is offline
Registrado
 
Registrado: sep 2003
Ubicación: México D.f.
Posts: 4
Poder: 0
Martha Ayala Va por buen camino
Question Como crear un libro de excel con 6 hojas no estoy usando el ExcelApplication

e Necesito un crear un archivo excel pero con 6 hojas no estoy ocupando el ExcelApplication porque por cada archivo excel necesito una nueva instancia. estoy ocupando lo siguiente para crear el archivo excel

Código Delphi [-]
 var
   WorkSheet:_WorkSheet;
   WorkBks:WorkBooks;
   WorkSheets:Sheets;
   Workbk: WorkBook;
 begin
   //Creamos una instancia de la aplicación
   XLApp:= Excel_TLB.CoApplication_.Create;
   XLApp.Visible[0]:=True;
   WorkBks:=XLApp.Workbooks as WorkBooks;
   WorkBks.Add(XLWBatWorksheet, 0);
   WorkBks.Add(XLWBatWorksheet, 0);
   WorkBk := WorkBks.Item[1];
   WorkSheets := Workbk.WorkSheets;
   //establecemos él numero de hoja
   WorkSheet := WorkBk.WorkSheets.Get_Item(1) as _WorkSheet;
   {...}
pero cuando quiero crear la siguiente hoja escribo

Código Delphi [-]
   WorkSheet := WorkBk.WorkSheets.Get_Item(2) as _WorkSheet;
y me marca Error indice invalido
por favor agradeceria mucho su ayuda o alguna pista

Última edición por dec fecha: 13-10-2005 a las 01:56:00. Razón: ¡¡Encerrad el código fuente entre las etiquetas [DELPHI] ... [/DELPHI]!!
Responder Con Cita
  #2  
Antiguo 13-10-2005
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.233
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
Tal vez es porque no estén creadas.
Deberías revisar si WorkSheets tiene algun método Add o similar.
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita
  #3  
Antiguo 13-10-2005
Avatar de OSKR
OSKR OSKR is offline
Miembro
 
Registrado: nov 2004
Ubicación: San Cristóbal/Táchira/Venezuela
Posts: 389
Poder: 20
OSKR Va por buen camino
Yo habia creado esta clase (en Builder) para interactuar con el Excel, mira bien la parte de la creacion del libro y a partir de ahi la instruccion para llamar las hojas:
Código:
class Excel
{ public:
  Variant xlApp;
  Variant xlBooks;
  Variant xlBook;
  Variant xlSheets;
  Variant xlSheet;
  Variant xlRange;
  void AbrirExcel(bool Visible)
  { xlApp = CreateOleObject("Excel.Application");	  //LLamamos al Excel
	xlApp.Exec(PropertySet("Visible") << Visible);
	xlBooks=xlApp.Exec(PropertyGet("Workbooks"));	  //LLamamos al conjunto de libros
	xlBooks.Exec(Procedure("Add"));					//Le agregamos 1
	xlBook = xlBooks.Exec(PropertyGet("Item")<<1);	 //LLamamos a ese libro
	xlSheets = xlBook.Exec(PropertyGet("Worksheets")); //LLamamos al conjunto de hojas del primer libro
	xlSheet = xlSheets.Exec(PropertyGet("Item") << 1); //LLamamos a la primera hoja
  }
  void Escribir(int fila, int colm, AnsiString Value)
  { AnsiString Celda=AnsiString((char)(64+colm))+AnsiString(fila);
	xlRange= xlSheet.Exec(PropertyGet("Range") << Celda);
	xlRange.Exec(PropertySet("Value") << Value);
  }
  void Escribir(int fila, int colm, AnsiString Value,AnsiString Formato)
  { AnsiString Celda=AnsiString((char)(64+colm))+AnsiString(fila);
	xlRange= xlSheet.Exec(PropertyGet("Range") << Celda);
	xlRange.Exec(PropertySet("Value") << Value.ToDouble());
	xlRange.Exec(PropertySet("NumberFormat") << Formato);
  }
  void Guardar(AnsiString FileName)
  { xlBook.Exec(Procedure("SaveAs") << FileName); //FileName debe tener extensiòn .xls
  }
  void Cerrar(bool Close=false)
  { if( Close)
	  xlApp.Exec(Procedure("Quit"));
	xlApp.Clear();
  }
};
__________________
Los Estados Unidos parecen destinados por la Providencia para plagar la América de miserias a nombre de la libertad."
Simón Bolívar
(Carta al Coronel Inglés Patricio Cambell 05/08/1829).
Responder Con Cita
  #4  
Antiguo 24-10-2005
Martha Ayala Martha Ayala is offline
Registrado
 
Registrado: sep 2003
Ubicación: México D.f.
Posts: 4
Poder: 0
Martha Ayala Va por buen camino
Wink Muchas gracias

agradezco tu ayuda, en error que me envía era por otra linea de codigo y no por lo que yo creía. y bueno ya puedo crear las 6 hojas.

Atte. Martha Ayala
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

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


La franja horaria es GMT +2. Ahora son las 00:43:34.


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