Script to take .xls file and read it for each server

Script to take .xls file and read it for each server "/aix/test/$server_pre.xls" and then removes all the disks as provided in the file and then give output as below for each server, but am getting error where it says cannot find directory.
server_name: server1
Disk Cleaned
hdisk1 hdisk1 deleted
hdisk2 hdisk2 deleted
..... ......
..... ......

#!/usr/bin/ksh
# set -x
ofile=/cleanup_logs/disk-cleanup.$$
for server in `cat host_list.txt`
do
cat /aix/test/$server_pre.xls | grep hdisk | while read i
do
clean=`rmdev -dRl $i`
if [ $? != 0 ]
then
echo "Command Failed for $i"
fi
echo " $server "   >> $ofile
echo "   $i    |    $clean   " >> $ofile
done 

xls files are not the text grep is most reliable handling, so are these realy csv files or do you need xls2txt ?

The first part is repeated the same for every server.

server_pre is a valid variable name, but probably not what you want... Use brackets like ${server} to force the name to end where you want.