1. 程式人生 > >Java 新增、讀取、刪除Excel形狀

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();
    }
}

執行程式後,可檢視形狀刪除效果。

 

(本文完)

&n