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

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 16-09-2005
Avatar de sitrico
[sitrico] sitrico is offline
Miembro Premium
 
Registrado: may 2003
Ubicación: Caracas, Venezuela
Posts: 295
Poder: 21
sitrico Va por buen camino
Problema con ExcelApplication.ActiveWorkbook.SaveAs

Tengo el siguiente código:

Código Delphi [-]
Arch := StrDir(DirDest.Text)+NombreArchivo+'.XLS';
// ExcelApplication1.ActiveWorkbook.SaveAs(Arch,xlNormal, '', '', false, false,
//           xlNochange,xlUserResolution,False,EmptyParam,EmptyParam,
//           LCID);
ExcelApplication1.ActiveWorkbook.SaveAs(Arch,xlNormal, '', '', false, false,
         xlNochange,xlUserResolution,False,EmptyParam,EmptyParam,
         xlLocalFormat1,LCID);
If MostrarExcel.Checked Then
   ExcelApplication1.Visible[0] := true
Else
   ExcelApplication1.Quit;

Funcionaba perfectamente con los componentes de servers Office 2000 pero tuve que cambiarlos por los Office XP y a partir de ese momento no funcionó la línea del SaveAs (Incorporó un parámetro adicional (xlLocalFormat1 creo), antes funcionaba bien con la línea comentada)

Genera una excepción de Violación de Acceso en C88B5300

Alguien tiene un ejemplo con un ExcelApplication1.ActiveWorkbook.SaveAs que funcione.

PD. Si no uso el SaveAs el archivo se abre la hoja pero sin nombre (LibroX)

PD2. El comando SaveCopyAs funciona, pero al cerrar la hoja igual me pide el nombre.

PD3 El origen del problema es que con los componentes Office 2000 no abre el archivo con Office 2003 (Ole Error)
__________________
Sitrico
Responder Con Cita
  #2  
Antiguo 17-09-2005
lgarcia lgarcia is offline
Miembro
 
Registrado: jul 2004
Posts: 479
Poder: 20
lgarcia Va por buen camino
Problema con Excel

Hola:

Yo trabajo con Office 2003 y nunca he tenido ese problema te voy a enviar un codigo a ver si te sirve

Código:
  
procedure TFormMenu.Plantilla1Click(Sender: TObject);
var
  Excel, Libro: Variant;
  i: integer;
  Nombre: string;
begin
  Excel:=CreateOleObject('Excel.Application');
  Excel.Visible := False;
  Excel.DisplayAlerts:= False;
  Excel.WorkBooks.Add('C:\Archivos de programa\Tienda\Productos.xlt');
  Excel.WorkBooks[1].WorkSheets[1].Name := 'Productos';
  Libro := Excel.WorkBooks[1].WorkSheets['Productos'];
  with Productos do
  begin
	Close;
	Open;
  end;
  Productos.First;
  i:= 2;
  while not (Productos.Eof) do
  begin
	Libro.Cells [i,1] := ProductosCodTrasval.Value;
	Libro.Cells [i,2] := ProductosDescripcionPLU.Value;
	Libro.Cells [i,3] := ProductosPrecioCosto.Value;
	Libro.Cells [i,4] := ProductosPrecioventa.Value;
	Libro.Cells [i,5] := Productosum.Value;
	Libro.Cells [i,6] := ProductosCategoria.Value;
	inc(i);
	Productos.Next;
  end;
  Libro.SaveAs('C:\Archivos de programa\Tienda\Listado transferencias');
  ShowMessage(' El fichero Listado transferencias.xls ha sido creado exitosamente');
  Excel.Quit;
end;
En el uses de la Unit incluyo Excel97, ComObj y siempre me trabaja bien en este caso yo utilizo una plantilla Excel (.xlt) para darle formato a las celdas y no tener que preocuparme por la programacion.

Saludos
Luis Garcia

_____________________________
La mejor manera de decir es hacer
Responder Con Cita
  #3  
Antiguo 17-09-2005
Avatar de sitrico
[sitrico] sitrico is offline
Miembro Premium
 
Registrado: may 2003
Ubicación: Caracas, Venezuela
Posts: 295
Poder: 21
sitrico Va por buen camino
Cita:
Empezado por lgarcia
En el uses de la Unit incluyo Excel97, ComObj y siempre me trabaja bien
Por lo que dices aquí, creo que estas usando los componentes office 97, y mi problema es con los componentes Offixe XP

En realidad con los componentes office 2000 el programa me funcionaba perfectamente, pero me ocurría un error cuando el usuario tenía instalado ofiice 2003 (no había problemas si era 97, 2000 o 2002) por eso actualice a los componentes office XP.

Voy a tratar de anotar el error exacto que se genera para dar más luces.

Pero de cualquier manera voy a probar algo similar a ver que pasa
__________________
Sitrico
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


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


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