In the first row of your data in the spreadsheet, is the column that is being seen as a string blank? When connecting to an Excel file, Crystal determines what "type" a field is based on the data in the first row and I believe it sees blanks as strings.
Create a formula on the column that's shown as a string using the "ToNumber" function and use that instead of the field itself. You may have to strip out the "$" character from the string in your formula for this to work.
-Dell