Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 07-07-2011
Avatar de oscarac
[oscarac] oscarac is offline
Miembro Premium
 
Registrado: sep 2006
Ubicación: Lima - Perú
Posts: 2.010
Poder: 20
oscarac Va por buen camino
Migracion a excel

buenos dias

tengo que pasar un informacion a excel la caracteristica es que se debe pasar en diferentes hojas dependiendo de los datos
codigos 1 y 2 en una hoja
codigo 3 en otra
codigo 4 en otra

entonces hice algo mas o menos asi

Código Delphi [-]
  _FilaTitulos := 1;
    Excel := CreateOleObject('Excel.Application');
    Excel.DisplayAlerts := False;
    Excel.WorkBooks.Add(xlWBATWorksheet);
    //Agrega una hoja
    Excel.WorkBooks[1].WorkSheets.add;
    Excel.WorkBooks[1].WorkSheets.add;
    //Nombra las hojas
    Excel.WorkBooks[1].WorkSheets[1].Name:='Sheet1';
    Excel.WorkBooks[1].WorkSheets[2].Name:='Sheet2';
    Excel.WorkBooks[1].WorkSheets[3].Name:='Sheet3';
    //Referencia a cada hoja con una variable
    WorkSheet1 := Excel.WorkBooks[1].WorkSheets['Sheet1'];
    WorkSheet2 := Excel.WorkBooks[1].WorkSheets['Sheet2'];
    WorkSheet3 := Excel.WorkBooks[1].WorkSheets['Sheet3'];

    WorkSheet1.cells[_FilaTitulos,1] := 'Empresa';
    WorkSheet1.cells[_FilaTitulos,2] := 'Codigo';
    WorkSheet1.cells[_FilaTitulos,3] := 'Cese';
    WorkSheet1.cells[_FilaTitulos,4] := 'Trabajador';
    WorkSheet1.cells[_FilaTitulos,5] := 'Dcto.Trabajador';
    WorkSheet1.cells[_FilaTitulos,6] := 'Empresa';
    WorkSheet1.cells[_FilaTitulos,7] := 'Total';
    WorkSheet2.cells[_FilaTitulos,1] := 'Empresa';
    WorkSheet2.cells[_FilaTitulos,2] := 'Codigo';
    WorkSheet2.cells[_FilaTitulos,3] := 'Cese';
    WorkSheet2.cells[_FilaTitulos,4] := 'Trabajador';
    WorkSheet2.cells[_FilaTitulos,5] := 'Dcto.Trabajador';
    WorkSheet2.cells[_FilaTitulos,6] := 'Empresa';
    WorkSheet2.cells[_FilaTitulos,7] := 'Total';
    WorkSheet3.cells[_FilaTitulos,1] := 'Empresa';
    WorkSheet3.cells[_FilaTitulos,2] := 'Codigo';
    WorkSheet3.cells[_FilaTitulos,3] := 'Cese';
    WorkSheet3.cells[_FilaTitulos,4] := 'Trabajador';
    WorkSheet3.cells[_FilaTitulos,5] := 'Dcto.Trabajador';
    WorkSheet3.cells[_FilaTitulos,6] := 'Empresa';
    WorkSheet3.cells[_FilaTitulos,7] := 'Total';
    i1:= _FilaTitulos + 1;
    i2:= _FilaTitulos + 1;
    i3:= _FilaTitulos + 1;
    qryConsumos.First;
    while not qryConsumos.Eof do
    begin
      if (Izquierda(qryConsumosOtro.AsString,1) = '1') or (Izquierda(qryConsumosOtro.AsString,1) = '2') Then
      Begin
        WorkSheet1.cells[i1, 1].NumberFormat := '@';
        WorkSheet1.cells[i1, 1] := qryConsumosempresa.AsString;
        WorkSheet1.cells[i1, 2].NumberFormat := '@';
        WorkSheet1.cells[i1, 2] := qryConsumosOtro.AsString;
        WorkSheet1.cells[i1, 3] := qryConsumosFechaCese.AsDateTime;
        WorkSheet1.cells[i1, 4] := qryConsumosTrabajador.AsString;
        WorkSheet1.cells[i1, 5] := qryConsumosDcto.AsFloat;
        WorkSheet1.cells[i1, 6] := qryConsumosEmpresa_1.AsFloat;
        WorkSheet1.cells[i1, 7] := qryConsumosDcto.AsFloat + qryConsumosEmpresa_1.AsFloat;
        inc (i1);
      end;
      if (Izquierda(qryConsumosOtro.AsString,1) = '3') Then
      Begin
        WorkSheet2.cells[i2, 1].NumberFormat := '@';
        WorkSheet2.cells[i2, 1] := qryConsumosempresa.AsString;
        WorkSheet2.cells[i2, 2].NumberFormat := '@';
        WorkSheet2.cells[i2, 2] := qryConsumosOtro.AsString;
        WorkSheet2.cells[i2, 3] := qryConsumosFechaCese.AsDateTime;
        WorkSheet2.cells[i2, 4] := qryConsumosTrabajador.AsString;
        WorkSheet2.cells[i2, 5] := qryConsumosDcto.AsFloat;
        WorkSheet2.cells[i2, 6] := qryConsumosEmpresa_1.AsFloat;
        WorkSheet2.cells[i2, 7] := qryConsumosDcto.AsFloat + qryConsumosEmpresa_1.AsFloat;
        inc (i2);
      end;
      if (Izquierda(qryConsumosOtro.AsString,1) = '4') Then
      Begin
        WorkSheet3.cells[i3, 1].NumberFormat := '@';
        WorkSheet3.cells[i3, 1] := qryConsumosempresa.AsString;
        WorkSheet3.cells[i3, 2].NumberFormat := '@';
        WorkSheet3.cells[i3, 2] := qryConsumosOtro.AsString;
        WorkSheet3.cells[i3, 3] := qryConsumosFechaCese.AsDateTime;
        WorkSheet3.cells[i3, 4] := qryConsumosTrabajador.AsString;
        WorkSheet3.cells[i3, 5] := qryConsumosDcto.AsFloat;
        WorkSheet3.cells[i3, 6] := qryConsumosEmpresa_1.AsFloat;
        WorkSheet3.cells[i3, 7] := qryConsumosDcto.AsFloat + qryConsumosEmpresa_1.AsFloat;
        inc (i3);
      end;
      qryConsumos.Next;
      ProgressBarXls.Position := ProgressBarXls.Position +1;
    end;
    WorkSheet1.Cells.Columns.AutoFit;
    WorkSheet2.Cells.Columns.AutoFit;
    WorkSheet3.Cells.Columns.AutoFit;
  WorkBook.SaveAs(fname);
  WorkBook.Close(fName);
    Excel.Quit;

pero me da error en las ultimas lineas
Código Delphi [-]
 
  WorkBook.SaveAs(fname);

el mensaje dice EVariantInvalidOpError Invalid variant operation

q estoy haciendo mal?
__________________
Dulce Regalo que Satanas manda para mi.....
Responder Con Cita
  #2  
Antiguo 07-07-2011
LoPiTaL LoPiTaL is offline
Miembro
 
Registrado: abr 2009
Posts: 168
Poder: 16
LoPiTaL Va por buen camino
Me imagino que te voy a comentar una bobada, que seguramente la hayas omitido por acortar el código, pero en el código que has citado, la variable "Workbook" con la que haces el SaveAs no está inicializada...

Un saludo,
LoPiTaL
Responder Con Cita
Respuesta



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

Temas Similares
Tema Autor Foro Respuestas Último mensaje
migracion sistema asp.net gabrielflowers .NET 0 28-09-2010 23:02:29
Migración DavidSG4 OOP 0 20-10-2008 16:04:23
Consulta de Migración marceloalegre Firebird e Interbase 8 21-09-2006 13:25:47
Migración a 10g release 2 SMTZ Oracle 2 03-08-2006 00:46:50
Migracion componentes BDE a :DBX,IBX ASAPLTDA Conexión con bases de datos 0 24-03-2004 15:06:06


La franja horaria es GMT +2. Ahora son las 19:52:52.


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