What Corion said, plus probably using export to CSV (or use the xls2csv utility that comes with Spreadsheet::Read) of both Excel files and then use the csvdiff utility that comes with Text::CSV_XS.
$ xlscat -c old.xls
"Student ID",Name,Test,Grade
1,"Tom Hanks",Math,F
2,"Angelina Jolie",Biology,B
3,"David Gilmour",Music,A
$ xlscat -c old.xls >old.csv
$ xlscat -c new.xls
"Student ID",Name,Test,Grade
1,"Tom Hanks",Math,B
2,"Angelina Jolie",Biology,B
3,"David Gilmour",Music,A
4,Bono,Singing,"F- (EPIC FAIL)"
$ xlscat -c new.xls >new.csv
$ csvdiff old.csv new.csv
# csvdiff < old.csv > new.csv
< 1,"Tom Hanks",Math,"F"
> 1,"Tom Hanks",Math,"B"
+ 4,Bono,Singing,"F- (EPIC FAIL)"
When using csvdiff in a TTY, it'll try to use colors to make changes more obvious.
Enjoy, Have FUN! H.Merijn