loDestinationWrkBk.Save()
>DIMENSION aXLSFiles(3) aXLSFiles(1) = "C:\temp1.xls" aXLSFiles(2) = "C:\temp2.xls" aXLSFiles(3) = "C:\temp3.xls" CombineExcelFiles(@aXLSFiles, "C:\XLSCombined.xls") FUNCTION CombineExcelFiles (taXLSFiles, tcDestination) EXTERNAL ARRAY taXLSFiles LOCAL loDestinationWrkBk as Excel.Application, ; loWorkBook as EXCEL.Workbook, ; loWorkSheet as EXCEL.Worksheet, ; lnCounter, lnSheetCount, lcWorkSheetCaption loDestinationWrkBk = NEWOBJECT("Excel.Application") loDestinationWrkBk.ScreenUpdating = .F. loDestinationWrkBk.DisplayAlerts = .F. loDestinationWrkBk.Workbooks.Open(taXLSFiles(1,1)) lnCounter = 0 FOR EACH loWorkSheet IN loDestinationWrkBk.Workbooks(1).WorkSheets lnCounter = lnCounter + 1 IF lnCounter > 1 loWorkSheet.Delete ENDIF ENDFOR lcWorkSheetCaption = JUSTSTEM(taXLSFiles(1)) loDestinationWrkBk.Workbooks(1).ActiveSheet.Name = RIGHT(ALLTRIM(CHRTRAN(lcWorkSheetCaption,CHRTRAN(lcWorkSheetCaption,"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789 ","")," ")), 31) &&loWorkBook.Name lnSheetCount = loDestinationWrkBk.Workbooks(1).Worksheets.Count FOR lnCounter = 2 TO ALEN(taXLSFiles) IF FILE(taXLSFiles(lnCounter)) lcWorkSheetCaption = JUSTSTEM(taXLSFiles(lnCounter)) loWorkBook = loDestinationWrkBk.Workbooks.Open(taXLSFiles(lnCounter)) loWorkBook.Worksheets(1).Copy(NULL, loDestinationWrkBk.Workbooks(1).Worksheets(loDestinationWrkBk.Workbooks(1).Worksheets.Count)) loDestinationWrkBk.Workbooks(1).ActiveSheet.Name = RIGHT(ALLTRIM(CHRTRAN(lcWorkSheetCaption,CHRTRAN(lcWorkSheetCaption,"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789 ","")," ")), 31) &&loWorkBook.Name loWorkBook.Close(.F.) ENDIF ENDFOR loDestinationWrkBk.Save(tcDestination) loDestinationWrkBk.ScreenUpdating = .T. loDestinationWrkBk.DisplayAlerts = .T. loDestinationWrkBk.Quit() ENDFUNC