A similar script that I posted here a couple years prior to the one above preserves empty cells that occur to the left of non-empty cells. (It also handles unicode character content, in case that's relevant.) Here: xls2tsv
Comment on Re^3: Excel To Tab Delimited using Spreadsheet::ParseExcel