Para poder leer un xlsx (Excel 2007) lo primero que hay que hacer es instalar estos
drivers
, si estas trabajando en un entorno local, no es complicado lo bajas y los
instalas ay que es un .exe, pero si trabajas con un web hosting tendrás que pedirlo
a la mesa de soporte si te los puede instalar, ya que depende del plan
contratado no se puede acceder a instalarlos, una ves instalado para poder leer
el contenido usas el siguiente código:
sFilePath = server.MapPath("upload/"&archivo) 'path del archivo xlsx
sDataDir = server.MapPath("upload") 'path de directorio que lo contiene
sSheetName = "Hoja1" ' nombre de la hoja donde estan los registros
sFileConnectionString = "Driver={Microsoft Excel Driver (*.xls,
*.xlsx, *.xlsm,
*.xlsb)};DBQ="&sFilePath&";DefaultDir="&sDataDir&";"
sFileSQL = "SELECT * FROM [" & sSheetName & "$]"
set oFileCN = server.createobject("ADODB.Connection") 'creo objeto adodb
oFileCN.Open sFileConnectionString 'abro el excel
set oFileRS = oFileCN.Execute(sFileSQL) 'selecciono los registros
if not oFileRS.EOF then 'si es distinto de EOF obtengo un array con los valores de las columnas
aSourceData = oFileRS.getRows() ' asigna las filas a la variable aSourceData
end if
oFileRS.Close
set oFileRS = nothing
oFileCN.Close
set oFileCN = nothing
De esta forma ya tiene los datos del archivo xlsx dentro del array "aSourceData".