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 19-01-2013
calco_hugo calco_hugo is offline
Miembro
 
Registrado: jul 2010
Posts: 42
Poder: 0
calco_hugo Va por buen camino
Smile Excel := CreateOleObject ('Excel.Application')

ante todo buenos dias, desde ya gracias por leer el post y si me pueden ayudar barbaro, me estoy complicando con lo siguiente: tengo una aplicacion en delphi (delphi 7) que genera una planilla excel, en una pc (win 7 32 bits, español), excel version 14.xx 32 bits (ingles), en otro equipo (win 2003 server ingles) excel version 14.xx 32 bits (ingles), en estos equipos funcionan a la perfeccion, otro equipo (win 7 64 bits español) excel version 14.00 32 bits (español) la siguiente instruccion me da error

Código Delphi [-]
Excel := CreateOleObject ('Excel.Application')

el error es = clas EOleSysError 'Cadena clase no valida'

desde ya muchas gracias
Responder Con Cita
  #2  
Antiguo 19-01-2013
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola calco_hugo.

En este momento se me ocurren dos motivos, verifica que Excel esté instalado y que tengas los privilegios necesarios para ejecutarlo.

Para lo primero podes hacer:
Código Delphi [-]
...
uses ComObj,ActiveX;

function ExcelInstalled: Boolean;
var
  ClassID: TCLSID;
  strOLEObject: string;
begin
  strOLEObject := 'Excel.Application';
  Result:= CLSIDFromProgID(PWideChar(WideString(strOLEObject)), ClassID) = S_OK;
end;
Y en la llamada:
Código Delphi [-]
var
  Excel: Variant;
begin
  if not ExcelInstalled then
    raise Exception.Create('Excel no está instalado');
 
  try
    Excel:= GetActiveOleObject('Excel.Application');
  except
    Excel:= CreateOleObject('Excel.Application');
  end;
  ...

Para lo segundo mira si te sirve este [enlace].

Saludos.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....

Última edición por ecfisa fecha: 19-01-2013 a las 16:09:03. Razón: ortografía
Responder Con Cita
  #3  
Antiguo 19-01-2013
calco_hugo calco_hugo is offline
Miembro
 
Registrado: jul 2010
Posts: 42
Poder: 0
calco_hugo Va por buen camino
ecfisa, desde ya muchas gracias por responder y mas por ser sabado, si el excel esta instalado y tengo los permisos necesarios, si se le ocurre algo mas, por aca voy a andar
hugo
Responder Con Cita
  #4  
Antiguo 19-01-2013
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola Hugo.

Por las dudas intentá registrar la aplicación en el equipo (W7 32) desde consola:
Código:
C:\>...\Excel.exe /regsvr32
Saludos.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #5  
Antiguo 19-01-2013
Avatar de nlsgarcia
[nlsgarcia] nlsgarcia is offline
Miembro Premium
 
Registrado: feb 2007
Ubicación: Caracas, Venezuela
Posts: 2.206
Poder: 21
nlsgarcia Tiene un aura espectacularnlsgarcia Tiene un aura espectacular
calco_hugo,

Cita:
Empezado por calco_hugo
La siguiente instruccion me da error: Excel := CreateOleObject ('Excel.Application'), el error es = clas EOleSysError 'Cadena clase no valida'
El error Invalid Class String ocurre cuando Excel no esta instalado en el equipo y por tanto la Automatización de Excel falla.

Este error es independiente de la versión de Windows (XP, Vista, Windows 7, Windows 8) o la plataforma (x32 o x64), si no esta instalado Excel no es posible usar los métodos de Automatización OLE (Object Linking and Embedding).

Según entiendo tienes instalado Office 2010 en la máquina con Windows 7 x64, Pregunto:

1- ¿Puedes reinstalar Officel 2010?, los métodos de instalación ofrecen una opción de Reparación de la Instalación, es simple y nos permite descartar cualquier problema con Office 2010.

2- ¿Puedes publicar tu código?, esto permitirá un análisis mayor del problema.

Espero sea útil

Nelson.
Responder Con Cita
  #6  
Antiguo 19-01-2013
calco_hugo calco_hugo is offline
Miembro
 
Registrado: jul 2010
Posts: 42
Poder: 0
calco_hugo Va por buen camino
Smile

desde ya gracias por la ayuda, despues de mi ultimo post le mande el ejecutable a un compañero y le funciono con un equipo con una configuracion muy parecida a una de las maquinas que no me funciono, el excel esta instalado y funciona perfectamente para realizar o modificar planillas

Código Delphi [-]
procedure ......
var
  Excel, Libro : Variant;
begin
    excel := GetActiveOleObject('Excel.Application');
    Excel := CreateOleObject ('Excel.Application');
    Excel.Visible := True;
.....etc
end;

ya ahi en algunos equipos, que tienen instalado excel (o office) me da error
desde ya muchisimas gracias
hugo
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
Al exportar excel no me acepta variables (CreateOleObject) lmpadron C++ Builder 1 29-09-2012 21:26:11
Sintaxis Excel Application william2009 Servers 4 24-04-2008 23:16:28
EXCEL- CreateOleObject en Delphi 2006???? carrrlos Varios 0 28-01-2007 16:22:06
CreateOleObject('Excel.Application') KAYO Varios 3 19-12-2006 18:45:32
Excel desde Windows Forms Application TinkerBell .NET 3 13-01-2006 11:09:51


La franja horaria es GMT +2. Ahora son las 06:28:38.


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