POI XSSF - Formatar imagens em planilhas do EXCEL

Olá, tudo bem? Bom, no momento estou editando uma planilha onde o logo da empresa está inserido nas primeiras linhas da folha. Gostaria de modificar o tamanho das colunas/linhas sem que a imagem mude seu tamanho e posicionamento.

Segue:

private static void criandoRelatorio() {
	try (XSSFWorkbook workbook = new XSSFWorkbook()) {
		XSSFSheet sheetEmpresas = workbook.createSheet("Relatório");
		List<Empresa> tabelaApollus = gerarMock();
		int rownum = 1;

		InputStream is = new FileInputStream("C:\\Users\\Apollus\\OneDrive\\Documentos\\ambientecl.png");
		byte[] bytes = IOUtils.toByteArray(is);
		int pictureIdx = workbook.addPicture(bytes, Workbook.PICTURE_TYPE_PNG);
		is.close();


		Drawing<?> drawing = sheetEmpresas.createDrawingPatriarch();
																														
		// FORMA DE IMAGEM
		ClientAnchor anchor = sheetEmpresas.getWorkbook ().getCreationHelper().createClientAnchor();

		//SUBSEQUENTE DE PICTURE # RESIZE (2) IRÁ operar EM RELAÇÃO
		anchor.setCol1(3);
		anchor.setRow1(2);
		
		Picture pict = drawing.createPicture(anchor, pictureIdx);

		// IMAGEM DE TAMANHO AUTOMATICO EM RELAÇAO AS COLUNA²
		pict.resize(2);

Se haver alguma solução que facilite minha vida, ficarei MUI grata!

Eu sempre achei mais fácil criar um template, onde a imagem fica fixa e usá-lo como base para os relatórios.

1 curtida

Acabei de solucionar.

Segue o contexto para quem teve a mesma dúvida:

O ClientAnchor contém um método chamado setAnchorType (int) que pode ser usado para determinar como o Excel irá redimensionar uma imagem em resposta ao usuário aumentando ou diminuindo as dimensões da célula que contém a imagem. Existem três valores que podem ser passados ​​para este método;

  • (AnchorType.MOVE_AND_RESIZE) = Para mover e dimensionar a
    imagem com a célula.
  • (AnchorType.MOVE_DONT_RESIZE) = Para mover, mas não dimensionar a imagem com a célula.
  • (AnchorType.DONT_MOVE_AND_RESIZE) = Para impedir que a imagem se mova ou seja redimensionada junto com a célula.
3 curtidas