本文介紹通過java程式在excel中操作形狀(圖形)的方法,包括: 1. 添加形狀(如設置形狀類型/位置/大小、形狀顏色填充(單色/漸變色/紋理/圖片填充)、形狀顯示或隱藏、形狀傾斜角度、添加文本到形狀、形狀陰影等) 2. 讀取形狀中的文本和圖片 3. 刪除形狀(刪除指定或全部形狀) 工具:Spi ...
本文介紹通過java程式在excel中操作形狀(圖形)的方法,包括:
1. 添加形狀(如設置形狀類型/位置/大小、形狀顏色填充(單色/漸變色/紋理/圖片填充)、形狀顯示或隱藏、形狀傾斜角度、添加文本到形狀、形狀陰影等)
2. 讀取形狀中的文本和圖片
3. 刪除形狀(刪除指定或全部形狀)
工具:Spire.XLS for Java
Jar文件獲取及導入:通過官網下載或maven下載導入。導入效果如下:
Java代碼示例
【示例1】 添加形狀
import com.spire.xls.*; import com.spire.xls.core.IPrstGeomShape; import java.awt.*; public class AddShape { public static void main(String[] args) { //載入測試文檔 Workbook wb = new Workbook(); wb.loadFromFile("test.xlsx"); //獲取工作表 Worksheet sheet = wb.getWorksheets().get(0); //添加橢圓形 IPrstGeomShape ellipse = sheet.getPrstGeomShapes().addPrstGeomShape(3,4,125,200,PrstGeomShapeType.Ellipse); ellipse.getFill().setFillType(ShapeFillType.SolidColor);//單色填充 ellipse.getFill().setForeColor(new Color(180,125,208)); ellipse.setRotation(30);//形狀旋轉角度 ellipse.setText("橢圓形狀添加文本");//添加文本到形狀 //添加星形 IPrstGeomShape star = sheet.getPrstGeomShapes().addPrstGeomShape(3,8,180,200,PrstGeomShapeType.Star5); star.getFill().setFillType(ShapeFillType.Gradient);//漸變填充 star.getFill().setGradientColorType(GradientColorType.Preset); star.getFill().setForeColor(Color.orange); //添加雲朵形狀 IPrstGeomShape cloud = sheet.getPrstGeomShapes().addPrstGeomShape(12,4,175,200,PrstGeomShapeType.Cloud); cloud.getFill().setFillType(ShapeFillType.Texture);//紋理填充 cloud.getFill().setTexture(GradientTextureType.WhiteMarble); cloud.setVisible(true);//設置形狀是否可見 //設置雲朵陰影效果 cloud.getShadow().setAngle(90); cloud.getShadow().setDistance(10); cloud.getShadow().setSize(100); cloud.getShadow().setColor(Color.GRAY); cloud.getShadow().setBlur(30); cloud.getShadow().setTransparency(1); cloud.getShadow().hasCustomStyle(); //添加矩形形狀 IPrstGeomShape rect = sheet.getPrstGeomShapes().addPrstGeomShape(15,8,125,200,PrstGeomShapeType.Rect); rect.getFill().customPicture("tp.png");//載入圖片填充 rect.setName("Shape4");//命名形狀 //保存文檔 wb.saveToFile("AddShape.xlsx"); wb.dispose(); } }
形狀添加效果:
【示例2】讀取形狀中的文本和圖片
import com.spire.xls.*; import javax.imageio.ImageIO; import java.awt.image.BufferedImage; import java.io.File; import java.io.IOException; public class Extract { public static void main(String[] args) throws IOException { //載入文檔 Workbook wb = new Workbook(); wb.loadFromFile("AddShape.xlsx"); //獲取工作表 Worksheet sheet = wb.getWorksheets().get(0); //獲取指定形狀中的文本 String text = sheet.getPrstGeomShapes().get(0).getText(); System.out.println(text); //獲取指定形狀中的圖片 BufferedImage image = sheet.getPrstGeomShapes().get(3).getFill().getPicture(); ImageIO.write(image,"png",new File("ExtractedImage.png")); } }
文本、圖片讀取結果:
【示例3】刪除形狀
import com.spire.xls.*; public class RemoveShape { public static void main(String[] args) { //載入文檔 Workbook wb = new Workbook(); wb.loadFromFile("AddShape.xlsx"); //獲取工作表 Worksheet sheet = wb.getWorksheets().get(0); //獲取指定形狀,刪除 sheet.getPrstGeomShapes().get(1).remove();//通過索引值獲取並刪除 // sheet.getPrstGeomShapes().get("Shape4").remove();//通過形狀名稱獲取並刪除 //刪除所有圖形 for (int i = sheet.getPrstGeomShapes().getCount()-1; i >= 0; i--) { sheet.getPrstGeomShapes().get(i).remove(); } //保存文檔 wb.saveToFile("RemoveShape.xlsx"); wb.dispose(); } }
運行程式後,可查看形狀刪除效果。
(本文完)