Infoga en bild i en cell

Introduktion

Att anpassa en bild exakt till en enskild cell är ett vanligt krav när man utformar kalkylblad som används som visuella rapporter, produktkataloger, personalkataloger, instrumentpaneler eller inventarielistor. I stället för att sträcka ut en bild över många celler eller placera den löst på ett kalkylblad kanske du vill ha en tydligt avgränsad bild som hålls justerad i förhållande till den cell den är knuten till. Aspose.Cells stöder det här scenariot på två kompletterande sätt:

  • Metod 1 — Placera en flytande bild över en cell. Lägg till en Picture i kalkylbladet, ange setPlacement som MOVE_AND_SIZE och justera förankringscellerna (setUpperLeftRow, setUpperLeftColumn, setLowerRightRow, setLowerRightColumn) så att bilden täcker exakt en cell.
  • Metod 2 — Bädda in en bild direkt i en cell. Tilldela bilddata i form av en bytearray till cellens setEmbeddedImage-egenskap. Bilden skalas automatiskt för att passa cellens visningsområde och följer med cellen. Resten av den här artikeln går igenom båda metoderna, beskriver de relevanta API:erna och visar hur de används i kod.

Metod 1: Placera en bild över en cell

En flytande bild är ett Picture-objekt som finns i kalkylbladets ritlager. Även om bilden inte är en del av någon enskild cell är den förankrad i ett cellintervall. Bildens förankringsceller – dess övre vänstra och nedre högra hörn – bestämmer bildens visuella utsträckning på kalkylbladet. Som standard sträcker sig en nyligen tillagd bild över flera celler. För att en flytande bild ska täcka exakt en cell måste du:

  1. Lägg till bilden med Worksheet.getPictures().add(int row, int column, InputStream stream), vilket förankrar den nya bilden vid den angivna cellen.
  2. Ange de fyra förankringsegenskaperna så att bildens avgränsningsrektangel sammanfaller med målcellen.
  3. Ange Picture.setPlacement som PlacementType.MOVE_AND_SIZE så att bilden flyttas och storleksanpassas tillsammans med den underliggande cellen när användaren ändrar kolumnbredden eller radhöjden.

Förankra bilden till en enskild cell

Bildens förankring definieras av fyra egenskaper med nollbaserade index:

  • setUpperLeftRow — radindexet för bildens övre kant.
  • setUpperLeftColumn — kolumnindexet för bildens vänstra kant.
  • setLowerRightRow — radindexet för bildens nedre kant. För att bildens nedre kant ska ligga vid underkanten av rad r ska värdet anges som r + 1.
  • setLowerRightColumn — kolumnindexet för bildens högra kant. För att bildens högra kant ska ligga vid högra kanten av kolumn c ska värdet anges som c + 1.