Excel en Office 365

Post Reply
gmart1
Posts: 84
Joined: Wed Oct 24, 2007 12:48 pm
Location: Alhaurin de la Torre (MALAGA)

Excel en Office 365

Post by gmart1 »

Buenas tardes, mi cliente tenía instalada una versión de Office antigua y ha decidido pasarse a Office 365.
En el momento que ha desinstalado la versión antigua ha dejado de funcionar mi programa al crear hojas Excel. La forma en la que lo hago es :

Code: Select all | Expand

TOleAuto():New ("Excel.Application")
El error que da es :
Error description: Error TOleAuto/-1
CO_E_CLASSSTRING: TOLEAUTO:NEW
Called from: xhb\xhbole.prg => TOLEAUTO:NEW(0)
Sé que este error es debido a que no está instalado Excel en el ordenador, quisiera saber si hay alguna solución para poder usar Office 365 desde FiveWin o tendría que dejar la versión antigua instalada en su ordenador.
Muchas gracias.
User avatar
karinha
Posts: 8720
Joined: Tue Dec 20, 2005 7:36 pm
Location: São Paulo - Brasil
Contact:

Re: Excel en Office 365

Post by karinha »

Prueba asi:

Code: Select all | Expand

// C:\FWH\SAMPLES\EXCELREM.PRG - [email protected] - 23/09/2022

#Include "FiveWin.ch"

// Defines para o segundo parâmetro - Ejemplo by Rochinha. FiveWin Brasil.

#define xlCSV            6 //        CSV    *.csv
#define xlCSVMSDOS      24 //        MSDOS CSV    *.csv
#define xlCSVWindows    23 //        Windows CSV    *.csv
#define xlDBF3           8 //        Dbase 3 format    *.dbf
#define xlExcel8        56 //        Excel 97-2003 Workbook    *.xls
#define xlHtml          44 //        HTML format    *.htm; *.html
#define xlTextMSDOS     21 //        MSDOS Text    *.txt

FUNCTION Main()

   HB_GCALL( .F. )

   SET CENTURY ON
   SET DATE BRITISH
   SET TIME FORMAT TO "HH:MM:SS"
   SET EPOCH TO YEAR( DATE() ) - 30
   SET SOFTSEEK OFF
   SET WRAP ON
   SETCANCEL( .F. )
   SET CONFIRM OFF
   SET DELETED ON
   SET _3DLOOK ON
   SET UNIQUE OFF
   SET ESCAPE OFF
   SET EXACT ON  // CONTROLA O :=, = e ==
   SET EXCLUSIVE OFF
   SET MULTIPLE OFF

   MsgRun( "AGUARDE... ABRINDO OS BANCOS DE DADOS.   ",                      ;
           "Por Favor, Espere Abertura. Pode demorar.",                      ;
           { || WinExec( Excel_Remtec() ), 3 } )

   DbCommitAll()
   DbUnLockAll()
   DbCloseAll()
   FreeResources()
   Release All
   SysRefresh()
   HB_GCALL( .T. )

   CLEAR MEMORY

   PostQuitMessage( 0 )

   QUIT

RETURN NIL

FUNCTION Excel_Remtec()

   LOCAL oExcel, oWorkbook, oWorksheet

   TRY

      oExcel := TOleAuto():New( "Excel.Application" )

   CATCH

      TRY

         oExcel = CreateObject( "Excel.Application" )

         // Harbour:
         // oExcel := win_oleCreateObject( "Excel.Application" )

      CATCH

         MsgInfo( "Excel is not installed on this PC. " + ;
                  "You need Excel to continue", "Ooooopppsss" )

         RETURN( .F. )

      END

   END

   oWorkbook := oExcel:WorkBooks

   // Apertura del *.DBF
   oWorkbook:Open( "c:\temp\REMTEC.DBF" )

   oExcel:DisplayAlerts := .F.
   oExcel:Visible       := .T.

   oWorksheet := oExcel:Get( "ActiveSheet" )

   // Graba
   oWorksheet:SaveAs( "c:\temp\tabela.CSV",  6 ) // Segundo parâmetro informa o tipo de saída
   oWorksheet:SaveAs( "c:\temp\tabela.XLS", 56 ) // Segundo parâmetro informa o tipo de saída

RETURN NIL
// FIN
Regards, saludos.
João Santos - São Paulo - Brasil - Phone: +55(11)95150-7341
gmart1
Posts: 84
Joined: Wed Oct 24, 2007 12:48 pm
Location: Alhaurin de la Torre (MALAGA)

Re: Excel en Office 365

Post by gmart1 »

Muchas gracias por la respuesta, pero esa es la forma en la que lo tengo programado.

Has probado ese código en un ordenador que tenga instalado sólo el Office 365 ?
User avatar
karinha
Posts: 8720
Joined: Tue Dec 20, 2005 7:36 pm
Location: São Paulo - Brasil
Contact:

Re: Excel en Office 365

Post by karinha »

gmart1 wrote: Thu Jul 31, 2025 6:45 pm Muchas gracias por la respuesta, pero esa es la forma en la que lo tengo programado.

Has probado ese código en un ordenador que tenga instalado sólo el Office 365 ?
No tengo Microsoft Office 365.

Regards, saludos.
João Santos - São Paulo - Brasil - Phone: +55(11)95150-7341
User avatar
Otto
Posts: 7020
Joined: Fri Oct 07, 2005 7:07 pm
Contact:

Re: Excel en Office 365

Post by Otto »

En el servidor necesitas **Office Standard con soporte OLE**. En el escritorio, una **versión completa de office**, pero **no instales la versión Click-to-Run**, ya que TOleAuto() no funcionará con ella.
User avatar
MauroArevalo
Posts: 111
Joined: Thu Jan 19, 2006 11:47 pm
Location: Bogota DC. Colombia
Contact:

Re: Excel en Office 365

Post by MauroArevalo »

Saludos,

Tenemos Office 365 sin problemas.

Image
Edgar Mauricio Arévalo Mogollón.
Bogotá DC. Colombia
FWH FTDN, xHarbour 1.2.1, Pelles C, Fivedit, Visual Studio Code, Borland 7.30, Mysql, Dbfs
http://www.hymplus.com http://www.hymlyma.com
Tratando de retomar la programación....
User avatar
Otto
Posts: 7020
Joined: Fri Oct 07, 2005 7:07 pm
Contact:

Re: Excel en Office 365

Post by Otto »

TOleAuto() solo funciona con versiones de Office instaladas localmente que proporcionan una interfaz COM/OLE.

**Escritorio:**
La mayoría de las versiones de Office 365 en escritorios con Windows hoy en día se instalan como *Click-to-Run* (C2R).

Estas versiones *Click-to-Run* no registran Excel como servidor COM, por lo que TOleAuto("Excel.Application") falla.

Solo una instalación completa basada en MSI (versión clásica de instalación) registra las clases OLE necesarias.

Sin embargo, este tipo de versiones son cada vez más difíciles de conseguir: Microsoft las distribuye casi exclusivamente mediante licencias por volumen.

**Servidor:**
En sistemas Windows Server necesitas Office Standard u otra versión con licencia por volumen que esté aprobada para su uso en servidores.

El término "Standard" puede ser engañoso: se trata de una versión especial de Office compatible con servidores y que incluye soporte OLE.
User avatar
sysctrl2
Posts: 1144
Joined: Mon Feb 05, 2007 7:15 pm
Contact:

Re: Excel en Office 365

Post by sysctrl2 »

conclusión !
instalar office 2013 o comprar licencia :lol: :roll: :D
Cesar Cortes Cruz
SysCtrl Software
Mexico

' Sin +- FWH es mejor "
gmart1
Posts: 84
Joined: Wed Oct 24, 2007 12:48 pm
Location: Alhaurin de la Torre (MALAGA)

Re: Excel en Office 365

Post by gmart1 »

Otto wrote: Fri Aug 01, 2025 6:31 am TOleAuto() solo funciona con versiones de Office instaladas localmente que proporcionan una interfaz COM/OLE.

**Escritorio:**
La mayoría de las versiones de Office 365 en escritorios con Windows hoy en día se instalan como *Click-to-Run* (C2R).

Estas versiones *Click-to-Run* no registran Excel como servidor COM, por lo que TOleAuto("Excel.Application") falla.

Solo una instalación completa basada en MSI (versión clásica de instalación) registra las clases OLE necesarias.

Sin embargo, este tipo de versiones son cada vez más difíciles de conseguir: Microsoft las distribuye casi exclusivamente mediante licencias por volumen.

**Servidor:**
En sistemas Windows Server necesitas Office Standard u otra versión con licencia por volumen que esté aprobada para su uso en servidores.

El término "Standard" puede ser engañoso: se trata de una versión especial de Office compatible con servidores y que incluye soporte OLE.
Otto, muchas gracias por la explicación, es lo que me temía.
Mi cliente pertenece a una corporación grande y le han comunicado al departamento de informática que por motivos de seguridad tienen que desinstalar todas las versiones de Office y dejar sólo la 365.
Voy a solucionarlo generando un fichero plano CSV, menos mal que la hoja Excel que genera mi programa es muy sencilla y no necesito la funcionalidad que nos da OLE.
Muchas gracias a todos, informaré cuando tenga probado la solución adoptada.
Post Reply