Le immagini ti fanno capire qualsiasi storia nel modo più semplice. È un detto famoso che un’immagine vale più di mille parole. Microsoft Excel ti consente di inserire immagini nei tuoi fogli di lavoro nelle celle e di registrare fatti contro questi. In questo articolo, mostreremo come utilizzare l’API Apache POI per inserire un’immagine nel file Excel XLSX usando Java.

apache poi

Apache Poi è una libreria Java per lavorare con formati di file Microsoft Office come XLS, XLSX, DOC, DOCX, PPT, PPTX, ecc. Gli sviluppatori di applicazioni Java possono usarlo per l’elaborazione dei documenti senza entrare nei dettagli sottostanti della struttura del file interno di questi file.

Installazione di Apache Poi API

Prima di poter iniziare con il codice di scrittura per lavorare con i documenti Excel nella nostra applicazione Java, dobbiamo installare Apache Poi sul nostro sistema. A tale scopo, dovremmo avere le dipendenze POI disponibili nella nostra configurazione del progetto. Le seguenti dipendenze sono necessarie per sviluppare l’applicazione Apache POI.

<dependency>
    <groupId>org.apache.poi</groupId>
    <artifactId>poi</artifactId>
    <version>4.0.1</version>
</dependency>
<dependency>
    <groupId>org.apache.poi</groupId>
    <artifactId>poi-ooxml</artifactId>
    <version>4.0.1</version>
</dependency>

Puoi trovare ulteriori informazioni su Installazione dell’API POI per lavorare con i file Excel. Una volta aggiunto al progetto, il file Pom.xml sembra segue.

Come inserire l’immagine nella cella Excel usando Java?

È possibile utilizzare la libreria Apache Poi per aprire una cartella di lavoro Excel in Java e inserire immagini in una cella Excel usando i seguenti passaggi.

passaggi per aggiungere un’immagine in xlsx usando java poi

  1. Creare un’istanza della classe XSSFWorkbook
  2. Crea una riga e aggiungi celle nella riga
  3. Caricare l’immagine come oggetto inputstream
  4. Converti il ​​flusso di input in un array di byte
  5. Aggiungi l’immagine alla cartella di lavoro dall’array di byte usando il metodo addPicture dell’istanza della cartella di lavoro

Aggiungi immagine in Excel usando Java Poi Esempio

Diamo un’occhiata al codice di esempio completo per aggiungere un’immagine in una cella Excel usando la libreria Java Poi.

//create a new workbook
XSSFWorkbook wb = new XSSFWorkbook(); //or new HSSFWorkbook();
//add picture data to this workbook.
FileInputStream is = new FileInputStream("FileFormat.png");
byte[] bytes = IOUtils.toByteArray(is);
int pictureIdx = wb.addPicture(bytes, Workbook.PICTURE_TYPE_PNG);
is.close();
XSSFCreationHelper helper = wb.getCreationHelper();
//create sheet
XSSFSheet sheet = wb.createSheet();
// Create the drawing patriarch.  This is the top level container for all shapes.
Drawing drawing = sheet.createDrawingPatriarch();
//add a picture shape
XSSFClientAnchor anchor = helper.createClientAnchor();
//set top-left corner of the picture,
//subsequent call of Picture#resize() will operate relative to it
anchor.setCol1(3);
anchor.setRow1(2);
Picture pict = drawing.createPicture(anchor, pictureIdx);
//auto-size picture relative to its top-left corner
pict.resize();
//save workbook
String file = "picture.xls";
if(wb instanceof XSSFWorkbook) file += "x";
try (FileOutputStream fileOut = new FileOutputStream(file)) {
    wb.write(fileOut);
    wb.close();
}
catch(Exception ex)
{
	System.out.println(ex.getMessage());
}

conclusione

In questo articolo, abbiamo mostrato come aggiungere un’immagine a una cartella di lavoro di Excel XSLX usando la libreria Apache Poi per Java. Aggiungeremo altri esempi di Apache POI per lavorare con file Excel usando Apache Poi API. Quindi rimanete sintonizzati.