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

运行程序后,可查看形状删除效果。

(本文完)

Java 添加、读取、删除Excel形状的更多相关文章

  1. Java 添加、删除Excel表单控件

    通过表单控件,用户可以快速地将数据填写到模板文档中,轻松引用单元格数据并与其进行交互.本文通过Java代码示例介绍如何在Excel表格中添加表单控件,包括文本框.单选按钮.复选框.组合框.微调按钮等: ...

  2. Java 添加、删除、移动、隐藏/显示Excel工作表

    本文内容将介绍通过Java程序如何添加.删除.移动工作表,以及设置工作表隐藏.显示等操作.文中使用了Java Excel类库(Free Spire.XLS for Java 免费版),可通过官网下载包 ...

  3. Java 添加数字签名到Excel以及检测、删除签名

    Excel中可添加数字签名以供文档所有者申明文档的所有权或有效性.文本以Java代码示例介绍如何在Excel文档中对数字签名功能进行相关操作,包括如何添加签名到Excel.检测Excel文档是否已签名 ...

  4. java后台读取/解析 excel表格

    需求描述 前台需要上传excel表格,提交到后台,后台解析并返回给前台,展示在前台页面上! 前台部分代码与界面 <th style="padding: 7px 1px;width:15 ...

  5. Java 添加、删除、替换、格式化Word中的文本(基于Spire.Cloud.SDK for Java)

    Spire.Cloud.SDK for Java提供了TextRangesApi接口可通过addTextRange()添加文本.deleteTextRange()删除文本.updateTextRang ...

  6. Java 添加、删除、格式化Word中的图片

    本文介绍使用Spire.Cloud.SDK for Java提供的ImagesApi接口来操作Word中的图片.具体可通过addImage()方法添加图片.deleteImage()方法删除图片.up ...

  7. Java poi读取,写入Excel,处理row和cell可能为空的情况

    首先需要导入包 import org.apache.poi.hssf.usermodel.HSSFWorkbook; import org.apache.poi.poifs.filesystem.NP ...

  8. Java 添加、修改、读取、复制、删除Excel批注

    本文介绍通过Java程序来操作Excel批注的方法.操作内容包括批注添加(添加批注文本.背景色.字体.自适应等).修改.读取(文本.图片).复制.删除等. 工具:Free Spire.XLS for ...

  9. Java 添加、读取、删除Excel文档属性

    在文档属性中,可以设置诸多关于文档的信息,如创建时间.作者.单位.类别.关键词.备注等摘要信息以及一些自定义的文档属性.下面将通过Java程序来演示如何设置,同时对文档内的已有信息,也可以实现读取和删 ...

随机推荐

  1. If条件语句实战

    1.If条件判断语句 通常以if开头,fi结尾.也可加入else或者elif进行多条件的判断,if表达式如下: if (表达式) 语句1 else 语句2 fi 2.If常见判断逻辑运算符详解: -f ...

  2. 【Linux】Mac好用虚拟机 Parallels Desktop、FinalShell-多终端连接工具(支持Windows,macOS,Linux)

    一.Mac好用虚拟机 Parallels Desktop 1.下载安装: 2.新建虚拟机: 3.配置管理: 二.FinalShell-多终端连接工具(支持Windows,macOS,Linux) 1. ...

  3. boostrap-非常好用但是容易让人忽略的地方【1】:modal

    使用bootstrap框架好久了,在开发中也用到了或者遇到了很多的问题,所以跟大家分享一下 bootstrap modal 组件的样式 .modal-lg .modal-sm 说明:这个是bootst ...

  4. char* 、const char*和string之间的转换

    1. const char* 和string 转换 (1) const char*转换为 string,直接赋值即可.     EX: const char* tmp = "tsinghua ...

  5. F#周报2019年第51&52期

    新闻 介绍DataFrame 介绍System.Threading.Channels ConfigureAwait常见问题 第三次年度C#降临节 .NET会议--2020年1月14日 如何找到F#的工 ...

  6. Django学习小记1-安装配置

    Django是一个开放源代码的Web应用框架,由Python写成. python 中的web框架有许多例如:Django.Tornado.Flask..而Django相较与其他WEB框架其优势为:大而 ...

  7. 将 Sidecar 容器带入新的阶段

    作者 | 徐迪.张晓宇 导读:本文根据徐迪和张晓宇在 KubeCon NA 2019 大会分享整理.分享将会从以下几个方面进行切入:首先会简单介绍一下什么是 Sidecar 容器:其次,会分享几个阿里 ...

  8. 互联网项目中mysql应该选什么事务隔离级别

    引言 开始我们的内容,相信大家一定遇到过下面的一个面试场景 面试官:“讲讲mysql有几个事务隔离级别?” 你:“读未提交,读已提交,可重复读,串行化四个!默认是可重复读” 面试官:“为什么mysql ...

  9. ArrayList、LinkedList、Vector、CopyOnWriteArrayList的区别和源码分析

    1. ArrayList ArrayList 是一个数组队列,相当于动态数组.与Java中的数组相比,它的容量能动态增长.它继承于AbstractList,实现了List, RandomAccess, ...

  10. LINQ 实现多字段关联查询 C#

    var query = from main in _userDeviceChannelRole.Table join deviceChannelInfo in _deviceChannelReposi ...