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 29-12-2009
shoulder shoulder is offline
Miembro
 
Registrado: abr 2008
Posts: 441
Poder: 17
shoulder Va por buen camino
Excel

Hola, como puedo dividir mediante delphi un excel en solapas (hojas de calculos varias)?.

Gracias
Responder Con Cita
  #2  
Antiguo 29-12-2009
Avatar de santiago14
santiago14 santiago14 is offline
Miembro
 
Registrado: sep 2003
Ubicación: Cerrillos, Salta, Argentina
Posts: 583
Poder: 21
santiago14 Va por buen camino
Question

¿Un archivo de Excel ya existente o uno nuevo?

Saludos.
__________________
Uno es responsable de lo que hace y de lo que omite hacer.
Responder Con Cita
  #3  
Antiguo 30-12-2009
shoulder shoulder is offline
Miembro
 
Registrado: abr 2008
Posts: 441
Poder: 17
shoulder Va por buen camino
Excel

Hola, lo que quisiera es generar un listado excel por delphi pero me piden que haga hojas de calculo o solapas por cada departamentos de la empresa y en cada uno hacer los calculos correspondientes.

Gracias.
Responder Con Cita
  #4  
Antiguo 30-12-2009
Avatar de santiago14
santiago14 santiago14 is offline
Miembro
 
Registrado: sep 2003
Ubicación: Cerrillos, Salta, Argentina
Posts: 583
Poder: 21
santiago14 Va por buen camino
Thumbs up

Bueno, aquí pongo un módulo bastante sencillo que permite crear un libro de excel, en este caso le paso dos datasets que son de tipo MDOquery que es similiar a IBX así que no hay que hacerse drama por eso.
también va la dirección física (incluído el nombre del libro .xls) donde quieres poner el nuevo excel.
Lo que si, está bastante pobre en cuanto a funciones que manipulen las celdas propiamente dichas, apelo a la voluntad de la gente del foro para sugerir buenas funciones para todos los chiches que se pueden hacer dentro de las hojas de excel.
Espero te sirva, cualquier cosa me avisas.

Código Delphi [-]

....

implementation

uses
  forms, windows, comObj, excel2000, DB, Math, sysUtils;

.....
procedure exportatExcel(facturas,recibos:TMDOQuery;direccion:string);
var
  Excel, libro, hoja, hojaAnulada: Variant;
  i, iAnulado: integer;
begin
  try
    Excel:=CreateOleObject('Excel.Application');
    Excel.Visible := False;
    Excel.DisplayAlerts:= False;

    Excel.SheetsInNewWorkbook := 4;
  //Cramos un nuevo libro
    libro:=Excel.WorkBooks.Add;
  //Le ponemos nombres a las hojas
    Excel.WorkBooks[1].WorkSheets[1].Name := 'Facturas';
    Excel.WorkBooks[1].WorkSheets[2].Name := 'Facturas Anuladas';

    Excel.WorkBooks[1].WorkSheets[3].Name := 'Recibos';
    Excel.WorkBooks[1].WorkSheets[4].Name := 'Recibos Anulados';

    hoja:=Excel.WorkBooks[1].WorkSheets['Facturas'];
    hojaAnulada:=Excel.WorkBooks[1].WorkSheets['Facturas Anuladas'];
    with facturas do
    begin
    //Ponemos los títulos a las facturas buenas
      hoja.Cells[1,1]:='FECHA'; hoja.Cells[1,2]:='NÚMERO'; hoja.Cells[1,3]:='USUARIO';
      hoja.Cells[1,4]:='IMPORTE'; //hoja.Cells[1,5]:='TIPO'; //hoja.Cells[1,6]:='ESTADO';

    //Ponemos los títulos a las facturas anuladas
      hojaAnulada.Cells[1,1]:='FECHA'; hojaAnulada.Cells[1,2]:='NÚMERO'; hojaAnulada.Cells[1,3]:='USUARIO';
      hojaAnulada.Cells[1,4]:='IMPORTE'; //hojaAnulada.Cells[1,5]:='TIPO'; //hojaAnulada.Cells[1,6]:='ESTADO';

      //open;
      First;
      i:= 2;
      iAnulado:=2;
      while not Facturas.Eof do
      begin
        if Fields[4].AsString = 'PAGADO' then
        begin
          hoja.Cells [i,1] := Fields[0].AsDateTime; //fecha
          hoja.Cells [i,2] := Fields[1].AsString; //nro
          hoja.Cells [i,3] := Fields[2].AsString; //usuario
          hoja.Cells [i,4] := floatToStrF(Fields[5].AsFloat,ffFixed,10,2); //importe
          //hoja.Cells [i,5] := Fields[3].AsString; //tipo
          //hoja.Cells [i,6] := Fields[4].AsString; //estado
          inc(i);
        end
        else
        begin
          hojaAnulada.Cells [iAnulado,1] := Fields[0].AsDateTime; //fecha
          hojaAnulada.Cells [iAnulado,2] := Fields[1].AsString; //nro
          hojaAnulada.Cells [iAnulado,3] := Fields[2].AsString; //usuario
          hojaAnulada.Cells [iAnulado,4] := FloatToStrF(Fields[5].AsFloat,ffFixed,10,2); //importe
          //hojaAnulada.Cells [iAnulado,5] := Fields[3].AsString; //tipo
          //hojaAnulada.Cells [iAnulado,6] := Fields[4].AsString; //estado
          inc(iAnulado);
        end;
        Next;
      end;
      //facturas.Close;
    //Autoajuste de las columnas de la hoja
      hoja.Cells.Columns.AutoFit;
      hojaAnulada.Cells.Columns.AutoFit
    end;

    hoja:=Excel.WorkBooks[1].WorkSheets['Recibos'];
    hojaAnulada:=Excel.WorkBooks[1].WorkSheets['Recibos Anulados'];
    with recibos do
    begin
    //Ponemos los títulos a los recibos buenos
      hoja.Cells[1,1]:='FECHA'; hoja.Cells[1,2]:='NÚMERO'; hoja.Cells[1,3]:='USUARIO';
      hoja.Cells[1,4]:='IMPORTE'; //hoja.Cells[1,5]:='ESTADO';

    //Ponemos los títulos a los recibos anulados
      hojaAnulada.Cells[1,1]:='FECHA'; hojaAnulada.Cells[1,2]:='NÚMERO'; hojaAnulada.Cells[1,3]:='USUARIO';
      hojaAnulada.Cells[1,4]:='IMPORTE'; //hojaAnulada.Cells[1,5]:='ESTADO';

      //open;
      First;
      i:= 2;
      iAnulado:=2;
      while not Recibos.Eof do
      begin
        if Fields[3].AsString = 'PAGADO' then
        begin
          hoja.Cells [i,1] := Fields[0].AsDateTime; //fecha
          hoja.Cells [i,2] := Fields[1].AsString; //nro
          hoja.Cells [i,3] := Fields[2].AsString; //usuario
          hoja.Cells [i,4] := floatToStrF(Fields[4].AsFloat,ffFixed,10,2); //importe
          //hoja.Cells [iAnulado,5] := Fields[3].AsString; //estado
          inc(i);
        end
        else
        begin
        hojaAnulada.Cells [iAnulado,1] := Fields[0].AsDateTime; //fecha
        hojaAnulada.Cells [iAnulado,2] := Fields[1].AsString; //nro
        hojaAnulada.Cells [iAnulado,3] := Fields[2].AsString; //usuario
        hojaAnulada.Cells [iAnulado,4] := floatToStrF(Fields[4].AsFloat,ffFixed,10,2); //importe
        //hojaAnulada.Cells [i,5] := Fields[3].AsString; //estado
        inc(iAnulado);
        end;
        Next;
      end;
      //recibos.Close;
    //Autoajuste de las columnas de la hoja
      hoja.Cells.Columns.AutoFit;
      hojaAnulada.Cells.Columns.AutoFit
    end;
    Libro.SaveAs(direccion);
    Excel.Quit;
  except
    Excel.Quit;
    Application.MessageBox('No se pudo crear el Archivo de Excel.',
      'Backup de Comprobantes',MB_OK + MB_ICONERROR);
    raise;
  end;
end;
__________________
Uno es responsable de lo que hace y de lo que omite hacer.
Responder Con Cita
  #5  
Antiguo 04-01-2010
shoulder shoulder is offline
Miembro
 
Registrado: abr 2008
Posts: 441
Poder: 17
shoulder Va por buen camino
Excel

Gracias por tu aporte justo lo que necesitaba!!!.
Responder Con Cita
  #6  
Antiguo 04-01-2010
Avatar de santiago14
santiago14 santiago14 is offline
Miembro
 
Registrado: sep 2003
Ubicación: Cerrillos, Salta, Argentina
Posts: 583
Poder: 21
santiago14 Va por buen camino
Thumbs up

Por nada, estamos para ayudar en lo que podamos.

Saludos.
__________________
Uno es responsable de lo que hace y de lo que omite hacer.
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
excel a delphi, como mostrar columnas de excel Vyckso Servers 2 13-08-2007 12:38:08
Excel sin Excel gaby_stars Varios 2 12-07-2006 20:52:33
MÁs De Excel nax C++ Builder 1 27-12-2005 09:29:49
Excel Alejandro Horns Tablas planas 1 27-07-2005 22:09:39
Problema al actualizar Excel 2000 a Excel XP victork_py Servers 1 06-08-2004 19:20:41


La franja horaria es GMT +2. Ahora son las 17:25:44.


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