Puede ser que le estés dando mal la ruta, o el archivo...
Con archivos excel yo lo he hecho de esta forma :
Código VB.NET:
Ver original'metodo para crear archivo excel
'Esto es lo que finalmente guardare
' Creamos un objeto WorkBook, manejará el documento
Dim objLibroExcel As Excel.Workbook
'todas las operaciones necesarias para crear el excel.
'se construye la ruta donde se guardara el archivo
Dim path As String
path = "D:\Reporte"
nn="Reporte.xls"
nombre = path + "\" + nn 'nombre final de archivo
objLibroExcel.SaveAs(nombre) 'se guarda el archivo
'Con esto queda guardado en la ruta que yo le he dado (en el servidor)
'ahora lo descargo
descarga(nombre)
'fin del metodo
Private Sub descarga(ByVal nombre)
Try
Response.Clear() 'se borra todo lo que este en el buffer
Response.ContentType = "application/ms-excel" 'se crea una aplicacion excel
Response.WriteFile(nombre) 'se da el archivo
Response.AddHeader("Content-Disposition", "inline;filename=Reporte.xls") 'se adjunta para descargalo
Response.End() 'se descarga
Catch ex As Exception 'si hay un error, se toma la excepcion y se da un aviso
Label3.Text = "Error al descargar el archivo, intente nuevamente"
End Try
Saludos!