Inserimento di un'immagine in una cella

Introduzione

Adattare un’immagine esattamente a una singola cella è un requisito comune quando si progettano fogli di calcolo che fungono da report visivi, cataloghi di prodotti, elenchi di dipendenti, dashboard o elenchi di inventario. Piuttosto che estendere un’immagine su molte celle o posizionarla liberamente su un foglio di lavoro, potresti voler ottenere un’immagine pulita e legata alla cella che rimane allineata alla cella che la possiede. Aspose.Cells supporta questo scenario in due modi complementari:

  • Approccio 1 — Posizionare un’immagine mobile sopra una cella. Aggiungi una Picture al foglio di lavoro, imposta il suo Placement su MoveAndSize e regola le celle di ancoraggio (UpperLeftRow, UpperLeftColumn, LowerRightRow, LowerRightColumn) in modo che l’immagine copra esattamente una cella.
  • Approccio 2 — Incorporare un’immagine direttamente in una cella. Assegna i byte dell’immagine alla proprietà EmbeddedImage della cella. L’immagine si ridimensiona automaticamente per adattarsi all’area di visualizzazione della cella e viaggia con la cella. Il resto di questo articolo illustra entrambi gli approcci, spiega le API pertinenti e mostra come utilizzarle nel codice.

Approccio 1: Posizionare un’immagine sopra una cella

Un’immagine mobile è un oggetto Picture che risiede sul livello di disegno del foglio di lavoro. Sebbene non faccia parte di nessuna singola cella, è ancorato a un intervallo di celle. Le celle di ancoraggio dell’immagine — i suoi angoli in alto a sinistra e in basso a destra — determinano la sua estensione visiva sul foglio di lavoro. Per impostazione predefinita, un’immagine appena aggiunta si estende su più celle. Per fare in modo che un’immagine mobile copra esattamente una cella, è necessario:

  1. Aggiungere l’immagine utilizzando worksheet.getPictures().add(int row, int column, InputStream stream), che ancora la nuova immagine alla cella specificata.
  2. Impostare le quattro proprietà di ancoraggio in modo che il rettangolo di delimitazione dell’immagine coincida con la cella di destinazione.
  3. Impostare picture.setPlacement(PlacementType.MOVE_AND_SIZE) in modo che l’immagine si sposti e si ridimensioni con la cella sottostante quando l’utente modifica la larghezza della colonna o l’altezza della riga.

Ancoraggio dell’immagine a una singola cella

L’ancoraggio dell’immagine è definito da quattro proprietà di indice a base zero:

  • picture.setUpperLeftRow(int) — l’indice di riga del bordo superiore dell’immagine.
  • picture.setUpperLeftColumn(int) — l’indice di colonna del bordo sinistro dell’immagine.
  • picture.setLowerRightRow(int) — l’indice di riga del bordo inferiore dell’immagine. Per fare in modo che il bordo inferiore dell’immagine si trovi in fondo alla riga r, impostare questo valore su r + 1.
  • picture.setLowerRightColumn(int) — l’indice di colonna del bordo destro dell’immagine. Per fare in modo che il bordo destro dell’immagine si trovi a destra della colonna c, impostare questo valore su c + 1.