Les images vous font comprendre n’importe quelle histoire la manière la plus simple. C’est un dicton célèbre qu’une image vaut mille mots. Microsoft Excel vous permet d’insérer des images dans vos feuilles de calcul dans les cellules et d’enregistrer des faits contre ceux-ci. Dans cet article, nous allons montrer comment utiliser l’API Apache POI pour insérer une image dans Excel fichier xlsx à l’aide de Java.

apache poi

Apache POI est une bibliothèque Java pour travailler avec des formats de fichiers Microsoft Office tels que XLS, XLSX, DOC, DOCX, PPT, PPTX, etc. Les développeurs d’applications Java peuvent l’utiliser pour le traitement des documents sans entrer dans les détails sous-jacents de la structure de fichiers interne de la structure de fichiers interne de ces fichiers.

Installation Apache POI API

Avant de commencer par écrire du code pour travailler avec des documents Excel dans notre application Java, nous devons installer Apache POI sur notre système. À cette fin, nous devons avoir les dépendances POI disponibles dans notre configuration de projet. Les dépendances suivantes sont nécessaires pour développer l’application 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>

Vous pouvez trouver plus d’informations sur Installation de l’API POI pour travailler avec des fichiers Excel. Une fois ajouté à votre projet, le fichier pom.xml ressemble comme suit.

Comment insérer l’image dans Excel Cell en utilisant Java?

Vous pouvez utiliser la bibliothèque Apache POI pour ouvrir un classeur Excel dans Java et insérer des images dans une cellule Excel en utilisant les étapes suivantes.

étapes pour ajouter une image dans xlsx en utilisant java poi

  1. Créez une instance de la classe XSSFWorkBook
  2. Créez une ligne et ajoutez des cellules dans la ligne
  3. Chargez l’image en tant qu’objet InputStream
  4. Convertissez le flux d’entrée en un tableau d’octets
  5. Ajoutez l’image au classeur du tableau d’octets à l’aide de la méthode AddPicture de l’instance de classeur

Ajouter une image dans Excel en utilisant Java POI Exemple

Examinons l’exemple de code complet pour ajouter une image dans une cellule Excel à l’aide de la bibliothèque 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());
}

Conclusion

Dans cet article, nous avons montré comment ajouter une image à un classeur Excel XSLX à l’aide de la bibliothèque Apache POI pour Java. Nous ajouterons plus d’exemples APACH POI pour travailler avec des fichiers Excel à l’aide de l’API APACH POI. Alors restez à l’écoute.