[RESOLVIDO] Como resolver ioexception em arquivo xls gerado por jett?

2 respostas Resolvido
exceljsfreportjava
P

Pessoal tenho um bean com metodo de gerar relatorio feito com jett:

Map<String, Object> beans = new HashMap<String, Object>();

	beans.put("fichasTecnicasMateriaPrimaResumo", fichasTecnicasMateriaPrimaResumo);
	try {
		 ExcelTransformer transformer = new ExcelTransformer();
		 transformer.transform("template.xls", "precificacao.xls", beans);
	} catch (IOException e) {
		System.err.println("IOException reading " + "template.xls" + ": " + e.getMessage());
	} catch (InvalidFormatException e) {
		System.err.println("InvalidFormatException reading " + "template.xls" + ": " + e.getMessage());
	}

estou tendo uma IOException justamente no transformer.transfom(…) , sendo que coloquei template.xls na mesma pasta do bean; na verdade fiz igual a documentação do jett e eles não explicam muita coisa la. Qualquer ajuda é bem vinda!

2 Respostas

D

Não conheço o jett, mas quando dá uma IOException geralmente acontece porque o sistema não consegue encontrar o arquivo, tente colocar o caminho completo do arquivo ou verifique na documentação se realmente é “filepath” ou URI. Se for URI ou URL, use a classe File ou Paths para fazer a transformação.

P
Solucao aceita

Resolvi passando a entrada como InputStream não String:

Map<String, Object> beans = new HashMap<String, Object>();

	beans.put("fichasTecnicasMateriaPrimaResumo", fichasTecnicasMateriaPrimaResumo);

	try {
		
		InputStream inPath = ProdutoManagedBean.class.getResourceAsStream("/template.xls");

		ExcelTransformer transformer = new ExcelTransformer();
		transformer.transform(inPath, beans);
	} catch (IOException e) {
		e.printStackTrace();
	} catch (InvalidFormatException e) {
		e.printStackTrace();
	}

A documentação do jett não diz isso, acho até um pouco pobre.

Criado 2 de setembro de 2017
Ultima resposta 4 de set. de 2017
Respostas 2
Participantes 2