This article will demonstrate how to insert and remove shapes in Excel file using Spire.XLS for Java.
Add shapes to Excel worksheet:
import com.spire.xls.*; import com.spire.xls.core.*; import javax.imageio.ImageIO; import java.awt.*; import java.awt.image.BufferedImage; import java.io.File; public class addShapestoExcel { public static void main(String[] args) throws Exception { String output = "output/AddShapesToExcelSheet.xlsx"; //create a workbook. Workbook workbook = new Workbook(); //get the first worksheet. Worksheet sheet = workbook.getWorksheets().get(0); //add a triangle shape. IPrstGeomShape triangle = sheet.getPrstGeomShapes().addPrstGeomShape(2, 2, 100, 100, PrstGeomShapeType.Triangle); //fill the triangle with solid color. triangle.getFill().setForeColor( Color.YELLOW); triangle.getFill().setFillType( ShapeFillType.SolidColor); //add a heart shape. IPrstGeomShape heart = sheet.getPrstGeomShapes().addPrstGeomShape(2, 5, 100, 100, PrstGeomShapeType.Heart); //fill the heart with gradient color. heart.getFill().setForeColor(Color.RED); heart.getFill().setFillType(ShapeFillType.Gradient); //add an arrow shape with default color. IPrstGeomShape arrow = sheet.getPrstGeomShapes().addPrstGeomShape(10, 2, 100, 100, PrstGeomShapeType.CurvedRightArrow); //add a cloud shape. IPrstGeomShape cloud = sheet.getPrstGeomShapes().addPrstGeomShape(10, 5, 100, 100, PrstGeomShapeType.Cloud); //fill the cloud with custom picture BufferedImage image = ImageIO.read(new File("SpireXls.png")); cloud.getFill().customPicture(image, "SpireXls.png"); cloud.getFill().setFillType( ShapeFillType.Picture); //save to file. workbook.saveToFile(output, ExcelVersion.Version2013); } }
Output:
Remove a particular shape or all shapes from Excel worksheet:
import com.spire.xls.*; public class removeShape { public static void main(String[] args) throws Exception { //Load the sample file Workbook workbook = new Workbook(); workbook.loadFromFile("output/AddShapesToExcelSheet.xlsx"); //get the first worksheet. Worksheet sheet = workbook.getWorksheets().get(0); //delete the second shape in the worksheet sheet.getPrstGeomShapes().get(1).remove(); /* //delete all shapes in the worksheet for (int i = sheet.getPrstGeomShapes().getCount()-1; i >= 0; i--) { sheet.getPrstGeomShapes().get(i).remove(); }*/ //save to file. workbook.saveToFile("output/RemoveParticularShape.xlsx", ExcelVersion.Version2013); } }
Effective screenshot after remove the second shape from Excel worksheet: