Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

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

 
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 02-08-2008
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 crear libro excel desde delphi en windows vista

Buenas, tengo un problema, quiero crear un libro excel desde delphi pero en windows vista no me lo permite. El error que me da es algo así:

"No se pudo guardar el archivo solicitado C:\ED966500, las causas podrían ser:
La ruta no existe,
No tiene permisos
...... "

Lo extraño es que en XP funciona sin problemas. Bueno, pongo el código de lo que estoy diciendo para ver si alguien me ayuda.

Muchas gracias.

Código Delphi [-]
procedure ExportarExcel_PlanillaDiaria(planillaDiaria:TPlanillaDiaria;
  cantHojasExcel:integer = 2; nombreArchivo:string = 'c:\PlanillaDiaria');
{En este caso se crea el libro y dos hojas}
var
  Excel: variant; // Aplicación Excel
  Libro: variant; // Libro de trabajo
  HojaBuenos, HojaMalos: variant; // Hoja de cálculo
  filaCliente, saltoFilaCliente: integer;
  i:integer;
  nro:integer;
begin
  with planillaDiaria do
  begin
    try
      Excel := CreateOleObject('Excel.Application');
      Excel.visible := False;
      Excel.DisplayAlerts:= False;
    //Creamos un nuevo libro de trabajo
      Excel.SheetsInNewWorkbook := cantHojasExcel;
      Libro := Excel.WorkBooks.Add;

    //Le ponemos nombres a las hojas
      Excel.WorkBooks[1].WorkSheets[1].Name := 'Buenos';
      Excel.WorkBooks[1].WorkSheets[2].Name := 'Malos';

      HojaBuenos:=Excel.WorkBooks[1].WorkSheets['Buenos'];
      HojaMalos:=Excel.WorkBooks[1].WorkSheets['Malos'];

    //Algo de Cartelería
      HojaBuenos.cells[1,3]:='Planilla Semanal de Cobros';  HojaMalos.cells[1,3]:='Planilla Semanal de Cobros';
      HojaBuenos.cells[2,3]:='Cobrador:';                   HojaMalos.cells[2,3]:='Cobrador:';
      HojaBuenos.cells[3,3]:='Zona:';                       HojaMalos.cells[3,3]:='Zona:';
      HojaBuenos.cells[2,4]:=nombreCobrador;                HojaMalos.cells[2,4]:=nombreCobrador;
      HojaBuenos.cells[3,4]:=zonaCobrador;                  HojaMalos.cells[3,4]:=zonaCobrador;

      HojaBuenos.cells[5,1]:='CLIENTE';                     HojaMalos.cells[5,1]:='CLIENTE';
      HojaBuenos.cells[5,3]:='Lunes';                       HojaMalos.cells[5,3]:='Lunes';
      HojaBuenos.cells[5,4]:='Martes';                      HojaMalos.cells[5,4]:='Martes';
      HojaBuenos.cells[5,5]:='Miércoles';                   HojaMalos.cells[5,5]:='Miércoles';
      HojaBuenos.cells[5,6]:='Jueves';                      HojaMalos.cells[5,6]:='Jueves';
      HojaBuenos.cells[5,7]:='Viernes';                     HojaMalos.cells[5,7]:='Viernes';
      HojaBuenos.cells[5,8]:='Sábado';                      HojaMalos.cells[5,8]:='Sábado';

      HojaBuenos.cells[6,3]:=#39 + dateToStr(fechaLunes);   HojaMalos.cells[6,3]:=#39 + dateToStr(fechaLunes);
      HojaBuenos.cells[6,4]:=#39 + dateToStr(fechaMartes);  HojaMalos.cells[6,4]:=#39 + dateToStr(fechaMartes);
      HojaBuenos.cells[6,5]:=#39 + dateToStr(fechaMiercoles); HojaMalos.cells[6,5]:=#39 + dateToStr(fechaMiercoles);
      HojaBuenos.cells[6,6]:=#39 + dateToStr(fechaJueves);  HojaMalos.cells[6,6]:=#39 + dateToStr(fechaJueves);
      HojaBuenos.cells[6,7]:=#39 + dateToStr(fechaViernes); HojaMalos.cells[6,7]:=#39 + dateToStr(fechaViernes);
      HojaBuenos.cells[6,8]:=#39 + dateToStr(fechaSabado);  HojaMalos.cells[6,8]:=#39 + dateToStr(fechaSabado);

    //Iniciamos en cierta fila
      filaCliente:=7;
    //Indicamos de cuantas filas es el salto
      saltoFilaCliente:=6;
      try
      //Iniciamos el armado de la hoja de buenos
        for i:=0 to high(planillaDiaria.clientesBuenos) do
        begin
          HojaBuenos.Cells[filaCliente + 0, 1]:=clientesBuenos[i].nombre;

          HojaBuenos.Cells[filaCliente + 1, 1]:=clientesBuenos[i].domicilioCobro;

          HojaBuenos.Cells[filaCliente + 2, 1]:='Nro. Crédito:';
          HojaBuenos.Cells[filaCliente + 2, 2]:=clientesBuenos[i].nroCredito;

          HojaBuenos.Cells[filaCliente + 3, 1]:='Monto Cuota: $';
          HojaBuenos.Cells[filaCliente + 3, 2]:=clientesBuenos[i].montoCuota;

          HojaBuenos.Cells[filaCliente + 4, 1]:='Fecha Semanal:';
          if clientesBuenos[i].fechaSemanal > 0 then
            HojaBuenos.Cells[filaCliente + 4, 2]:=#39 + dateToStr(clientesBuenos[i].fechaSemanal);

          filaCliente:=filaCliente + saltoFilaCliente;
        end; //del for...
      finally
      //Iniciamos en cierta fila
        filaCliente:=7;
      //Iniciamos el armado de la hoja de buenos
        try
          for i:=0 to high(planillaDiaria.clientesMalos) do
          begin
            HojaMalos.Cells[filaCliente + 0, 1]:=clientesMalos[i].nombre;

            HojaMalos.Cells[filaCliente + 1, 1]:=clientesMalos[i].domicilioCobro;

            HojaMalos.Cells[filaCliente + 2, 1]:='Nro. Crédito:';
            HojaMalos.Cells[filaCliente + 2, 2]:=clientesMalos[i].nroCredito;

            HojaMalos.Cells[filaCliente + 3, 1]:='Monto Cuota: $';
            HojaMalos.Cells[filaCliente + 3, 2]:=clientesMalos[i].montoCuota;

            HojaMalos.Cells[filaCliente + 4, 1]:='Fecha Semanal:';
            if clientesMalos[i].fechaSemanal > 0 then
              HojaMalos.Cells[filaCliente + 4, 2]:=#39 + dateToStr(clientesMalos[i].fechaSemanal);

            filaCliente:=filaCliente + saltoFilaCliente;
          end; //del for...
        finally
          
        end; //del finally
      end; //del finally
    //Grabamos el archivo
      randomize;
      nro:=random(100000);
      while FileExists(nombreArchivo + '_' + intToStr(nro) + '.xls') do
      begin
        nro:=random(100000);
      end;
      nombreArchivo:=nombreArchivo + '_' + intToStr(nro);
      Libro.saveAs(nombreArchivo);
      Excel.quit;
      Application.MessageBox(pchar('Exportación del Planilla semanal a Excel exitosa.'
          + #13#10 + 'Ubicación: ' + nombreArchivo + '.xls'),'Exportación a Excel',
          mb_Ok + MB_ICONINFORMATION);
    except
      on e:exception do
    begin
        excel.quit;
        Application.MessageBox(pchar('¡Sin exportación!' + #13#10 +
          'Mensaje: ' + e.message),'Exportación a Excel' ,mb_OK + mb_IconError);
    end;
    end; //del try
  end //del with
end;
__________________
Uno es responsable de lo que hace y de lo que omite hacer.
Responder Con Cita
 



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
Crear aplicaciones en C++ Builder 6 compatibles con Windows Vista morelo C++ Builder 1 02-08-2008 19:28:09
Crear libro Excel con sheets en docs diferentes Gaya Servers 0 07-07-2008 03:24:49
Crear proceso desde servicio en windows vista cheke API de Windows 1 09-08-2007 02:31:57
Crear Aplicaciones con Delphi listas para Windows Vista gluglu Noticias 1 06-11-2006 17:26:02
Como crear un libro de excel con 6 hojas no estoy usando el ExcelApplication Martha Ayala Servers 3 24-10-2005 18:33:49


La franja horaria es GMT +2. Ahora son las 22:04:39.


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