Gravar e ler objeto em Arquivo.xls

Boa tarde Galera!
Preciso Gravar um objeto em um arquivo.xls. Esse é um objeto do tipo Planilha.
Depois vou limpar esse objeto.
Depois vou ler esse arquivo e colocar no objeto Planilha de novo.

Fiz esse código abaixo. mas ele não está passando os dados para a Planilha.

public void salvaPlan(Planilha plan){
File f = new File(“planteste.xls”);

	  try{
		  FileOutputStream fos = new FileOutputStream(f);
		  ObjectOutputStream os = new ObjectOutputStream(fos);
		  
		  				  os.writeObject(plan);
		  				  
		  os.flush();	  
		  os.close(); 
		  fos.flush();
		  fos.close();
	  }
	  catch(IOException e){
		  e.getMessage();
	  }
  }

public void carregaPlan(Planilha plan){

	try {
		FileInputStream f = new FileInputStream("planteste.xls");
		ObjectInputStream obj = new ObjectInputStream(f);
		
		plan = (Planilha) obj.readObject();
		
		f.close();
		obj.close();
		
	} catch (IOException e) {
		e.getMessage();
	} catch (ClassNotFoundException e) {
		e.printStackTrace();
	}
	
  }

UP.
Alguém sabe me ajudar?

Isso aqui não vai salvar uma planilha do Excel, isso só vai serializar seu objeto plan.

Para criar planilhas você precisa usar uma biblioteca específica pra isso, como por exemplo o Apache POI.

Nunca usei Apache poi. Alguém pode me da um help?


O cara ensina certinho,até as bibliotecas de xls ele disponibilizou,dá uma assistida.

Cara tentei tentei e não consegui.
Ele só mostra como imprimir. Eu preciso Criar uma arquivo.xls e passar para esse arquivo uma Matriz.
Olha oque eu fiz. Não da nem um erro, mas também não cria o arquivo.

public void salvaPlan(Planilha plan){
try {

		HSSFWorkbook workbook = new HSSFWorkbook();
		HSSFSheet sheetTeste = workbook.createSheet("teste");
		
		int rownum = 0;
		for (int i = 0; i < plan.getPlanilha().length; i++) {
			Row row = sheetTeste.createRow(rownum++);
			int cellnum = 0;
			for (int j = 0; j < plan.getPlanilha()[i].length; j++) {
				Cell cell = row.createCell(cellnum++);
				cell.setCellValue((double) plan.getPlanilha()[i][j].getValor());
			}
		}
		
		FileOutputStream arquivo = new FileOutputStream(new File("planteste.xls"));
		workbook.write(arquivo);
        arquivo.close();
        System.out.println("Arquivo Excel criado com sucesso!");
		
	} catch (Exception e) {
		e.getMessage();
	}
	
	
}

Deve estar ocorrendo um erro sim, acontece que você não está apresentando o erro em lugar nenhum.
O método e.getMessage() apenas retorna uma String, mas você não está fazendo nada com esse retorno.
Altere seu catch para ficar assim:

} catch (Exception e) {
    e.printStackTrace();
}

Bha que falta de atenção! kkk

Agora deu certinho.
Passou minha matriz para o excel.
Obrigado.

public void salvaPlan(Planilha plan){
try {

		HSSFWorkbook workbook = new HSSFWorkbook();
		HSSFSheet sheetTeste = workbook.createSheet("teste");
		
		int rownum = 0;
		for (int i = 0; i < plan.getPlanilha().length; i++) {
			Row row = sheetTeste.createRow(rownum++);
			int cellnum = 0;
			for (int j = 0; j < plan.getPlanilha()[i].length; j++) {
				Cell cell = row.createCell(cellnum++);
				if(plan.getPlanilha()[i][j] != null) {
					cell.setCellValue((double) plan.getPlanilha()[i][j].getValor());
				}
			}
		}
		
		FileOutputStream arquivo = new FileOutputStream(new File("planteste.xls"));
		workbook.write(arquivo);
        arquivo.close();
        System.out.println("Arquivo Excel criado com sucesso!");
		
	} catch (Exception e) {
		e.printStackTrace();
	}
	
	
}