Tu capturas la ruta, pero el servidor lo buscará en su disco duro, más no en el usuario. Sólo podrás acceder a los discos del usuario en el caso de que estén en una LAN con el servidor y tengan directorios compartidos, y al referencia al archivo en tu cadena de conexión deberías hacerlo de esta forma:
\\nombre_pc\\recurso_compartido\archivo.xlsx.
No conozco totalmente el escenario en el que te encuentras, pero creo que deberías tener en el servidor una carpeta "Excels" y ahí guardar los archivos que el usuario elija y luego recién hacer referencia a esa ruta.
Código:
oConn.ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source="D:\Excels\" + nombre_archivo + ";Extended Properties='Excel 12.0'" ';HDR=NO" ';IMEX=1"
Saludos.