Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

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


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

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 09:18:15.


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