¿Alguna razón por la que no actualiza a Apex 5.0, o al menos a 4.2? Los componentes de "Carga de datos" se agregaron en 4.1 y le ofrecen una forma rápida de desarrollar este requisito exacto. 4.0 ya es antiguo y ya no se admite.
Cargar un xlsx o xls es muy, muy diferente de cargar un CSV. Nuevamente, preguntaría, ¿por qué no actualizar? Hay complementos disponibles que procesan archivos de Excel en colecciones, incluso XLSX. De nuevo, sin embargo, su versión de ápice es demasiado baja. Te estás disparando en el pie ella mi. No es que no haya opciones de codificación disponibles, pero aún así.
Si todavía no desea actualizar por alguna razón arbitraria, concéntrese quizás en los archivos xlsx. Son esencialmente archivos zip con un montón de archivos. Escribí un blog sobre esto en 2012. http://tpetrus.blogspot.be/2012/09/una-exportación-no-estándar-a-excel-2010-xlsx.html
Todavía es relevante y solo lo estoy vinculando porque contiene todas las entrañas del código. Sin embargo, no es infalible y tiene límites. Probablemente también haya otras formas. Menos para 4.0.