As whiteline points, all field names converted to values in the Crosstable() load will be stored as literals of texts, instead of numbers. Dates in QlikView are numeric, so you need a second load to transform the values correctly. According to the following sample:
CROSSTABLE (Month, Value) LOAD ID,
January AS "01/01/2012",
February AS "01/02/2012",
March AS "01/03/2012"
FROM File.xls (...);
STORE DataTemp INTO Temp.qvd (qvd);
DROP TABLE DataTemp;
Date(Date#(Month, 'DD/MM/YYYY')) AS ActualMonthDate,
FROM Temp.qvd (qvd);
The first step is always the Crosstable() load, the second reads the same table but transforms the values into actual numeric values. Using QVD files you are likely to save time in the load process.
They are not real temporary tables, rather the steps you need to follow in order to get the information clean and ready to use in the charts. Obviously, the less steps to take, the faster it will go, but usually the more complex it will be as well...