Allineamento del testo

di il
1 risposte

Allineamento del testo

Salve a tutti del forum,
sto sviluppando un documento in xlsx attraverso Java.

Ora però mi trovo ad affrontare un problema strano ossia devo inserire una scritta come disegno nel foglio di calcolo ma la scritta deve essere allineata a sinistra e in alto. Il problema è che non riesco ad individuare un metodo che provveda a far ciò. Di seguito il codice:

		HSSFPatriarch patriarch;
		HSSFClientAnchor clientAnchor;
		HSSFRichTextString richString;		
		Font font1 = this.newFont(refSheet.getWorkbook(), "Arial",(short) 12, true, false, false, false, IndexedColors.BLACK);		
		Font font2 = this.newFont(refSheet.getWorkbook(), "Arial Black",(short) 38, false, false, false, false, IndexedColors.BLACK);
		Font font3 = this.newFont(refSheet.getWorkbook(), "Arial",(short) 38, false, false, false, false, IndexedColors.BLACK);
		HSSFSimpleShape shape;

		//Inserimento della scritta Poste(ArialBold10)italiane(Arial10) con diversi font
	    patriarch = (HSSFPatriarch) refSheet.createDrawingPatriarch();
	    
	    clientAnchor = new HSSFClientAnchor(1, 1, 1, 1, (short) 1, 1, (short) 4, 2);	    

	    richString = new HSSFRichTextString("Posteitaliane");	    
	    richString.applyFont(0, 5, font2);
	    richString.applyFont(5, 13, font3);	    
	    
	    shape = patriarch.createSimpleShape(clientAnchor);
	    shape.setShapeType(HSSFSimpleShape.OBJECT_TYPE_RECTANGLE);	    
	    shape.setString(richString);	    
	    shape.setNoFill(true);
	    shape.setLineStyle(HSSFShape.LINESTYLE_NONE);

Premetto che quando si crea il file xlsx e successivamente lo apro, se clicco sul rettangolo, posso scegliere il giusto allineamento. Ma da codice non ne vengo a capo!!!!

Mi potete aiutare.

Grazie per aver letto, ancor di più se mi rispondete.

Saluti
cnesan

1 Risposte

  • Re: Allineamento del testo

    Mi sono documentato un attimo e pare che la libreria POI non esponga direttamente dei metodi per poter impostare allineamento e ancoraggio; di conseguenza bisogna agire direttamente sulla sottostruttura XML che gli oggetti rappresentano.

    Non ho modo ora di provare, ma puoi farlo tu:
    
    // Impostiamo l'allineamento a sinistra ( L = LEFT)
    shape.getCTShape().getTxBody().getPArray(0).getPPr().setAlgn( STTextAlignType.L );
    
    // Impostiamo l'ancoraggio in alto (T = TOP)
    shape.getCTShape().getTxBody().getBodyPr().setAnchor( STTextAnchoringType.T );
    
    Ciao.
Devi accedere o registrarti per scrivere nel forum
1 risposte