Java 新增、讀取、刪除Excel形狀
阿新 • • 發佈:2020-02-03
本文介紹通過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(); } }
執行程式後,可檢視形狀刪除效果。
(本文完)
&n