Question:
I tried to use APPEND FROM any.xls TYPE XLS and it failed on some numerics. Instead of real numbers I received zeros (0). Is it a bug? What’s the best and shortest way to import data from external databases in non-.DBF formats?
Answer:
Your question did not mention which version of Excel you are trying to import. Although the help file information regarding the APPEND FROM command does not go into the difference between the TYPEs xl5 and xls, the help for the IMPORT command does:
- XLS – Include XLS to import data from Microsoft Excel worksheets versions 2.0, 3.0, and 4.0. Columns from the worksheet become fields in the table and the worksheet rows become records in the table. Worksheet files created in Microsoft Excel have an .XLS extension.
XL5 [SHEET cSheetName] – Include XL5 to import data from Microsoft Excel version 5.0. Columns from the worksheet become fields in the table and the worksheet rows become records in the table. Worksheet files created in Microsoft Excel have an .XLS extension. If you omit the SHEET clause, the data in Sheet1 is imported. To import data from a specific sheet, include the SHEET keyword and specify the sheet name with cSheetName.
The problem you are experiencing may be that you are trying to append an Excel file that is higher than version 4, but you are telling VFP to append it as if it were version 2, 3, or 4.
Try using the XL5 in the TYPE parameter of the APPEND FROM command (note that the last digit is the number 5, not the letter S):
APPEND FROM any.xls TYPE XL5