It seems to me there are two disinct areas to check, the actual data format being created and the transmission of the response. Have you tested your .xls file generation methods outside the servlet environment? Once you are sure that the byte stream being generated makes a readable .xls file, then you can look at the servlet part of the problem.
I'm suspecting that my servlet is not generating real excel file,even if we set the header, content_type as 'application/vnd.ms-excel'. I'm using html <table> tag to draw excel cells and append them in StringBuffer object, finally I'm writing this object in the response.
I could able to generate excel report, but not the real one since I couldn't import that excel file in MS-Access, but original excel files we could.
Excel can open files containing HTML tables, but since those aren't XLS files, Access can't import them.
Setting the Content-Type does not make the servlet output into Excel files; it merely asserts that the output is in fact an Excel file. It's the responsibility of the servlet to then generate XLS files. Libraries like POI and jExcelAPI can do this.
I'm not too familiar with Access, but I think it can import CSV files, which are much easier to generate.