Java 添加、讀取、刪除Excel形狀

本文介紹通過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();
    }
}

 

運行程序後,可查看形狀刪除效果。

 

(本文完)

 

發佈了236 篇原創文章 · 獲贊 92 · 訪問量 51萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章