Code:
'After much playing around, it sure looks like the fastest way to get usable 'data from an excel worksheet to pb is save the sheet as a text file. This 'uses PB com to create a tab delimited text file. '1. In Excel, create Book1.xls '2. Put some data in Sheet1 '3. Save it, close it and exit Excel '4. Run SheetToTab #COMPILE EXE "SheetToTab.exe" #DIM ALL #INCLUDE "ExcelApp.inc" FUNCTION PBMAIN DIM StartTime AS LONG StartTime = TIMER DIM oExcelApp AS ExcelApplication DIM oExcelWorkbook AS ExcelWorkbook DIM vFalse AS VARIANT DIM vTrue AS VARIANT DIM oVnt AS VARIANT DIM vInFile AS VARIANT DIM vInSheet AS VARIANT DIM vOutDirFile AS VARIANT DIM vSaveAsType AS VARIANT LET vFalse = 0 LET vTrue = 1 LET vSaveAsType = %xlText SET oExcelApp = ExcelApplication IN $PROGID_ExcelApplication8 IF ISFALSE ISOBJECT(oExcelApp) THEN ' _ SET oExcelApp = NEW ExcelApplication IN $PROGID_ExcelApplication8 ELSE OBJECT LET oExcelApp.Visible = vTrue END IF ON ERROR GOTO Terminate LET vInFile = "Book1.xls" LET vInSheet = "Sheet1" LET vOutDirFile = "Book1.txt" OBJECT CALL oExcelApp.WorkBooks.Open(Filename = vInFile, UpdateLinks=vFalse) TO oVnt SET oExcelWorkbook = oVnt OBJECT CALL oExcelApp.Sheets(vInSheet).SELECT OBJECT LET oExcelApp.DisplayAlerts = vFalse OBJECT CALL oExcelWorkbook.SaveAs(Filename=vOutDirFile, FileFormat=vSaveAsType , CreateBackup=vFalse) OBJECT CALL oExcelWorkbook.Close(SaveChanges=vFalse) OBJECT LET oExcelApp.DisplayAlerts = vTrue Terminate: SET oExcelApp = NOTHING SET oExcelWorkbook = NOTHING OPEN "Book1.txt" FOR APPEND AS #1 PRINT #1, "Pb Time: " + STR$(TIMER-StartTime) CLOSE #1 END FUNCTION
Comment