Transformar html em excel. [RESOLVIDO]

Opa.
Boa tarde pessoal .

Sei que existem outros tópicos no forum tratando desse assunto, em sua maioria falando para usar a API : Apache POI .
No entanto estou em busca de uma solução mais rápida, simples e genérica. Com direito a algumas imperfeições .

Estou recuperando o conteúdo html de uma tabela e enviando para um servelet; da seguinte forma:

<script language="JavaScript" type="text/javascript">
	jQuery(document).ready(function() {			
		jQuery('#exportaTabela').click(function() {
		
			var tabela =  jQuery('#dataTableProcessosAbertos').html();
		
		
			
			
			var data = {'tabela' : tabela };	
			
			
			jQuery.ajax({
				url: 'exportar-servlet/',
			  	cache: false,
			  	async: false,
			  	type: 'post',
			  	data: data,
			  	dataType:'html',
				success: function(feedback){				
					alert("OK");
			  	},
			  	error: function(request, status, thrown){
				  	
			  		alert("Fail");
				}
			});
		
			
			
			
		});
	});									
</script>

public class ExportarServlet extends HttpServlet {

	private static final long serialVersionUID = 7549911469656855323L;

	public void doPost(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException {
		
		
		System.out.println("ExportarServlet.doPost()");
		String tabela = request.getParameter("tabela");

Ao recuperar o conteúdo da variável (tabela) em Debug. e salvar esse conteúdo como (*.xls)
O resultado é satisfatório. No entanto não estou conseguindo fazer isso com o Java.
Ainda não tentei criar o arquivo no servidor, não queria fazer isso.

por isso tava tentando uma forma de escrever o arquivo no response.
Mas ao que parece estou fazendo isso errado :

response.reset();
		   response.setContentType("application/xls");
		   response.setHeader("Content-Disposition",
		                      "attachment;filename=simpleDemo.xls");
		
		PrintWriter printWriter = response.getWriter();
		printWriter.write(tabela);

Alguém pode me dar uma dica de como fazer isso ?

Obrigado !

Bem ninguém comentou nada. Mas vou postar a solução que usei aqui .
Basicamente é passado para o Excel o HTML de uma tabela.
A solução não possui nenhum recurso, comparada a Apache POI, por exemplo.
Mas para o meu caso, onde o cliente queria todos os relatórios (html) em excel de um dia para outro, foi perfeito. :lol:

HTML

<script language="JavaScript" type="text/javascript">
	jQuery(document).ready(function() {			
		jQuery('#exportaTabela').click(function() {
		
			var tabela =  jQuery('#dataTableProcessosAbertos').html();	
			
			var texto = document.createElement('input');
			texto.id = 'tabela';
			texto.name = 'tabela';
			texto.value = tabela;
			
			
			var form = document.createElement('form');
			form.appendChild(texto);
			form.method = 'post';
			form.action = 'exportar-servlet/';
			
			form.submit();			
		});
	});									
</script>


<table id="dataTableProcessosAbertos">
   ... todo o html da tabela aqui ... 
</table>
<a id="exportaTabela">Exportar</a>

No meu caso era um rich:dataTable, mas tanto faz...

SERVLET PARA EXPORTAR E FAZER O DOWNLOAD


public class ExportarServlet extends HttpServlet {

	private static final long serialVersionUID = 7549911469656855323L;
	
	
	public void doPost(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException {
		
		
		System.out.println("ExportarServlet.doPost()");
		String corpoTabela = request.getParameter("tabela");
		String tabela = "<table id='teste'> "+corpoTabela+" </table>";
		File file = new File("relatorio.xls");
		if(file.exists()){
			file.delete();
			file = new File("relatorio.xls");
		}
		
		FileWriter fileWriter = new FileWriter(file,true);
		fileWriter.write(tabela);
		fileWriter.close();
		 
		FileInputStream fileIn = new FileInputStream (file);		 
		
	
		byte[] conteudo = new byte[fileIn.available()];
		fileIn.read(conteudo);
		 
		response.setContentType("application/octet-stream");
		response.setHeader("Content-disposition", "attachment;filename=" + "relatorio.xls");
		javax.servlet.ServletOutputStream servletoutputstream1 = response.getOutputStream();
		servletoutputstream1.write(conteudo);
		servletoutputstream1.flush();
		servletoutputstream1.close();			
	} 


}

Abraço !