Problema su Excel Automation

51 views
Skip to first unread message

Claudio Iannone

unread,
Dec 10, 2021, 2:19:21 PM12/10/21
to Foxpro Italia
Il mio problema nasce da questo blocco di programma che cambia il nome del primo e unico foglio della cartella EXCEL che si riceve da uno studio esterno (paghe) e funziona benissimo fino qui. Il fatto è che alla fine di questo blocco, mi rimane nelle attività di Windows, l'applicazione EXCEL in esecuzione, sia pure disattivata. Se rilancio il programma più volte, lascia ogni volta l'attività EXCEL , e queste si accumulano.... rendendo più lenta l'operazione succissiva.
Come fare per eliminare l'attività ?

    cFileName = "C:\PROGETTI\"+mnome
     oExcel = CREATEOBJECT("Excel.Application")
     oExcel.Visible = .F.
     oExcel.WorkBooks.Open(cFileName)
     oExcel.DisplayAlerts = .F.
     oExcel.Visible = .F.
     oExcel.ActiveWorkBook.Sheets(1).Activate
     oExcel.ActiveWorkBook.Sheets(1).Name = "Foglio1"
      oExcel.ActiveWorkbook.SaveAs("C:\PROGETTI\VCOOP\costidtmp.xlsx")
     oExcel.DisplayAlerts = .F.
     oExcel.WorkBooks.Close()
     oExcel.DisplayAlerts = .F.
     oExcel.quit
     RELEASE oExcel

     ERASE "C:\PROGETTI\"+mnome
     COPY FILE vcoop\costidtmp.xlsx TO "C:\PROGETTI\"+mnome
  

Gianni

unread,
Dec 10, 2021, 4:52:47 PM12/10/21
to foxpro...@googlegroups.com
Ciao Claudio,

il tuo esatto codice da me non mostra il problema, mi spiace.

Chiaramente il file Excel che apro non è il tuo ma dubito che possa fare la differenza, a meno che non si tratti di un file Excel davvero grosso e complesso.

Hai verificato gli aggiornamenti di Office?
Io uso la versione in sottoscrizione costantemente aggiornata:

Microsoft® Excel® per Microsoft 365 MSO (Versione 2111 Build 16.0.14701.20204) a 32 bit

Se il file che apri non è già nel formato xlsx, affinché il file risultante sia davvero nel formato xlsx non basta mettere l'estensione, bisogna anche indicare il FileFormat 51, con questa sintassi:

oExcel.ActiveWorkbook.SaveAs("C:\PROGETTI\VCOOP\costidtmp.xlsx", 51)

XlFileFormat enumeration (Excel)
https://docs.microsoft.com/en-us/office/vba/api/excel.xlfileformat

Gianni

Claudio Iannone

unread,
Dec 11, 2021, 7:08:33 AM12/11/21
to Foxpro Italia
Ti ringrazio molto. Proverò a nettere il file format 51. Comunque la versione di Excel è 2016, mentre il VFP e la 9.
Credevo che il rilascio dell'oggetto oExcel  determinasse anche l'uscita dall'Applicazione Excel.
Continuerò a fare delle prove.
Grazie ancora per la tempestività!
Claudio Iannone
 (non mi rassegno ad abbandonare VFP , il miglior dbase .dbf mai realizzato, abbiamo fatto andare avanti per almeno 15 anni  un'azienda di 3000 persone dal 1990 ).

Reply all
Reply to author
Forward
0 new messages