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

? ? ?? 在日常編輯Excel文檔時(shí),大多數(shù)時(shí)候都是對(duì)于數(shù)據(jù)的統(tǒng)計(jì)與分析,但有時(shí)為了能夠讓工作表中的某些數(shù)據(jù)更加醒目和突出,我們也會(huì)用到形狀功能,以此來(lái)使數(shù)據(jù)與圖形結(jié)合,進(jìn)而達(dá)到更加形象化和多樣化的效果。本文將通過使用Java程序來(lái)演示如何在Excel文檔中添加、讀取和刪除

使用工具: Spire.XLS for Java

Jar文件獲取及導(dǎo)入:

方法1通過官方網(wǎng)站下載獲取jar包。解壓后將lib文件夾下的Spire.Xls.jar文件導(dǎo)入Java程序。(如下圖)


方法2通過maven倉(cāng)庫(kù)安裝導(dǎo)入。具體安裝詳解參見此網(wǎng)頁(yè)

【示例1】添加形狀

import com.spire.xls.*;

import com.spire.xls.core.IPrstGeomShape;

import java.awt.*;

public class AddShape {

public static void main(String[] args) {

//加載測(cè)試文檔

Workbook wb = new Workbook();

wb.loadFromFile("D:\\Desktop\\Sample.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);//形狀旋轉(zhuǎn)角度

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);//設(shè)置形狀是否可見

? //設(shè)置云朵陰影效果

? ? 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("D:\\Desktop\\Image.jpg");//加載圖片填充

?? rect.setName("Shape4");//命名形狀

? ?? //保存文檔

??????? wb.saveToFile("output/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 ExtractImage {

public static void main(String[] args) throws IOException {

//加載文檔

?? Workbook wb = new Workbook();

? ?? wb.loadFromFile("D:\\Desktop\\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("output/ExtractedImage.png"));

??? }

}

文本、圖片讀取效果:


【示例3】刪除形狀

import com.spire.xls.*;

public class DeleteShape {

public static void main(String[] args) {

//加載文檔

? ? ?? Workbook wb = new Workbook();

??????? wb.loadFromFile("D:\\Desktop\\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("output/RemoveShape.xlsx");

??????? wb.dispose();

??? }

}

形狀刪除效果:

(本文完)

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

推薦閱讀更多精彩內(nèi)容