Comment mettre une image dans une cellule d'excel java?
J'ai essayé de mettre une image dans une cellule Excel avec java, mais sans beaucoup de succès c'est le code que je travaillais, mais la seule chose que j'ai fait c'est de mettre l'image sur une feuille excel, mais pas dans une cellule spécifiée
XSSFWorkbook wb = new XSSFWorkbook();
Sheet sheet = wb.createSheet("My Sample Excel");
//FileInputStream obtains input bytes from the image file
InputStream inputStream = new FileInputStream("C:/images/logo.png");
//Get the contents of an InputStream as a byte[].
byte[] bytes = IOUtils.toByteArray(inputStream);
//Adds a picture to the workbook
int pictureIdx = wb.addPicture(bytes, Workbook.PICTURE_TYPE_PNG);
//close the input stream
inputStream.close();
//Returns an object that handles instantiating concrete classes
CreationHelper helper = wb.getCreationHelper();
//Creates the top-level drawing patriarch.
Drawing drawing = sheet.createDrawingPatriarch();
//Create an anchor that is attached to the worksheet
ClientAnchor anchor = helper.createClientAnchor();
anchor.setCol1(1);
anchor.setRow1(2);
//Creates a picture
Picture pict = drawing.createPicture(anchor, pictureIdx);
//Reset the image to the original size
pict.resize();
//Write the Excel file
FileOutputStream fileOut = null;
fileOut = new FileOutputStream("C:/data/myFile.xlsx");
wb.write(fileOut);
fileOut.close();
Vous devez vous connecter pour publier un commentaire.
Ce que vous faites est déjà le positionnement de l'image avec le point d'ancrage à la cellule en haut à gauche
B3
(anchor.setCol1(1);anchor.setRow1(2);
). Alors vous avez déjà redimensionner l'image à sa taille d'origine.Si l'image doit s'insérer dans la cellule
B3
ensuite, vous devez créer un point d'ancrage avec la cellule en haut à gauche et en bas à droite de la cellule. Et vous ne devez pas redimensionner l'image à sa taille d'origine.Exemple:
Si vous supprimez le commentaire signes du programme des lignes
vous pouvez redimensionner la cellule
B3
et donc l'image est redimensionnée.