简介

本篇文章将介绍C# 如何处理Excel图形相关的问题,包括以下内容要点:

1.绘制图形

1.1 绘制图形并添加文本到图形

1.2 添加图片到图形

1.3 设置图形阴影效果

1.4 设置图形透明度

2. 提取图形中的文本、图片

3. 设置图形的显示、隐藏

4. 删除图形

4.1删除指定图形

4.2 删除所有图形

所需工具

PS: 下载安装该类库后,注意在项目程序中添加引用Spire.Xls.dll文件(dll文件可在安装路径下的Bin文件夹中获取)

注:Spire.xls能支持的图形种类很多,常见的Office Excel中的图形,这个类库也都能实现,

示例代码(供参考)

1. 绘制图形

【C#】

using System.Drawing;
using Spire.Xls;
using Spire.Xls.Core; namespace Add_shapes_to_Excel
{
class Program
{
static void Main(string[] args)
{
//创建实例
Workbook workbook = new Workbook();
//获取第一个工作表
Worksheet sheet = workbook.Worksheets[]; //添加“太阳”形状的图形,并填充颜色,设置图形的透明度为50%
IPrstGeomShape Triangle = sheet.PrstGeomShapes.AddPrstGeomShape(, , , , PrstGeomShapeType.Sun);
Triangle.Fill.ForeColor = Color.Orange;
Triangle.Fill.FillType = ShapeFillType.SolidColor;
Triangle.Fill.Transparency = 0.5;
Triangle.Text = "IT'S A SUNNY DAY";//添加文本 //添加“禁止”标志的图形,并填充渐变颜色
IPrstGeomShape heart = sheet.PrstGeomShapes.AddPrstGeomShape(, , , , PrstGeomShapeType.NoSmoking);
heart.Fill.ForeColor = Color.Red;
heart.Fill.FillType = ShapeFillType.Gradient; //添加云朵形状的图形
IPrstGeomShape Cloud = sheet.PrstGeomShapes.AddPrstGeomShape(, , , , PrstGeomShapeType.Cloud);
//设置图形阴影效果
Cloud.Shadow.Angle = ;
Cloud.Shadow.Distance = ;
Cloud.Shadow.Size = ;
Cloud.Shadow.Color = Color.SteelBlue;
Cloud.Shadow.Blur = ;
Cloud.Shadow.Transparency = ;
Cloud.Shadow.HasCustomStyle = true; //添加五角星形状的图形,并加载图片来填充图形
IPrstGeomShape cloud = sheet.PrstGeomShapes.AddPrstGeomShape(, , , , PrstGeomShapeType.Star5);
cloud.Fill.CustomPicture(Image.FromFile("sm.png"), "sm.png");
cloud.Fill.FillType = ShapeFillType.Picture; //保存并打开文档
workbook.SaveToFile("AddShapes.xlsx", ExcelVersion.Version2013);
System.Diagnostics.Process.Start("AddShapes.xlsx");
}
}
}

图形插入效果:

2.提取图形中的文本和图片

【C#】

using System.Drawing;
using System.Drawing.Imaging;
using System.IO;
using System.Text;
using Spire.Xls;
using Spire.Xls.Core; namespace Extract_text_and_image_from_Excel_shape
{
class Program
{
static void Main(string[] args)
{
//创建实例,加载Excel工作表
Workbook workbook = new Workbook();
workbook.LoadFromFile("test.xlsx"); //获取第一个工作表
Worksheet sheet = workbook.Worksheets[]; //提取指定形状中的文本内容,并将提取到的文本保存到指定文档
IPrstGeomShape shape1 = sheet.PrstGeomShapes[];
string s = shape1.Text;
StringBuilder sb = new StringBuilder();
sb.AppendLine(s);
File.WriteAllText("ExtractText.txt", sb.ToString());
System.Diagnostics.Process.Start("ExtractText.txt"); //提取指定图形中的图片,并保存图片到指定文件
IPrstGeomShape shape2 = sheet.PrstGeomShapes[];
Image image = shape2.Fill.Picture;
image.Save("ShapeImage.png", ImageFormat.Png);
System.Diagnostics.Process.Start("ShapeImage.png");
}
}
}

提取结果:

3. 设置图形的隐藏、显示

【C#】

using Spire.Xls;

namespace HideShapes_XLS
{
class Program
{
static void Main(string[] args)
{
//创建实例,加载Excel文档
Workbook workbook = new Workbook();
workbook.LoadFromFile("test.xlsx"); //获取第一个工作表
Worksheet sheet = workbook.Worksheets[]; //隐藏第3个图形
sheet.PrstGeomShapes[].Visible = false;
//显示图形
//sheet.PrstGeomShapes[1].Visible = true; //保存并打开文档
workbook.SaveToFile("HideShape.xlsx", ExcelVersion.Version2013);
System.Diagnostics.Process.Start("HideShape.xlsx");
}
}
}

设置效果:

4. 删除Excel图形

【C#】

using Spire.Xls;

namespace RemoveShapes_XLS
{
class Program
{
static void Main(string[] args)
{
//实例化Workbook类对象,加载Excel文件
Workbook workbook = new Workbook();
workbook.LoadFromFile("test.xlsx"); //获取第一个工作表
Worksheet sheet = workbook.Worksheets[]; //删除第一个图形
sheet.PrstGeomShapes[].Remove(); //删除所有图形
//for (int i = sheet.PrstGeomShapes.Count-1; i >= 0; i--)
//{
// sheet.PrstGeomShapes[i].Remove();
//} //保存并打开文件
workbook.SaveToFile("DeleteShape.xlsx", ExcelVersion.Version2013);
System.Diagnostics.Process.Start("DeleteShape.xlsx");
}
}
}

图形删除效果:

以上是关于“C#操作Excel中图形”的介绍,如需转载,请注明出处。

C# 操作Excel图形——绘制、读取、隐藏、删除图形的更多相关文章

  1. js操作cookie(创建、读取、删除)方法总结

    js操作cookie,可以通过开源的插件实现,方便快捷,兼容性好,同样也可以自己写: 此文主要介绍两个常用的插件: Js.cookie.js 和 jQuery.cookie.js 0.Js.cooki ...

  2. NPOI 读取excel到DataTable 读取隐藏列 读取公式列

    处理思路: 1.打开excel 用NPOI进行读取: 2.读取第一个Sheet: 读取过程中: a.先设置相应列 不隐藏 b.读取Cell时 先判断是否的包含公式 相应代码如下: public sta ...

  3. C#操作Excel(2)-- 打开-读取Excel文档

    由于要为某软件实现导出Excel功能,故有此文. 本文的开发环境是Visual Studio 2010 ,C#, Excel 2007. 新建C#工程后打开Solution Explorer,可以看到 ...

  4. 使用Open xml 操作Excel系列之一-读取Excel

    一. 安装Open Xml SDK 从微软网站下载Open xml SDK,安装SDK. 二. 在项目中添加对DocumentFormat.OpenXml库的引用

  5. Java——操作Excel表格,读取表格内容

    JAVA EXCEL API:是一开放源码项目,通过它Java开发人员可以读取Excel文件的内容.创建新的Excel文件.更新已经存在的Excel文件.使用该API非Windows操作系统也可以通过 ...

  6. 使用Python操作Excel文档(一)

    Python | 使用Python操作Excel文档(一) 0 前言 在阅读本文之前,请确保您已满足或可能满足以下条件: 请确保您具备基本的Python编程能力. 请确保您会使用Excel. 请确保您 ...

  7. PCB ODB++(Gerber)图形绘制实现方法

    这里讲解一下用net解析PCB图形绘制实现方法 一.解析PCB图形绘制实现 解析PCB图形,说简单也非常简单,先说一下,PCB Gerber图形由:点,线,弧,铜皮,文字 5类元素组成,通常简写为:P ...

  8. Matplotlib 图形绘制

    章节 Matplotlib 安装 Matplotlib 入门 Matplotlib 基本概念 Matplotlib 图形绘制 Matplotlib 多个图形 Matplotlib 其他类型图形 Mat ...

  9. 一个由正则表达式引发的血案 vs2017使用rdlc实现批量打印 vs2017使用rdlc [asp.net core 源码分析] 01 - Session SignalR sql for xml path用法 MemCahe C# 操作Excel图形——绘制、读取、隐藏、删除图形 IOC,DIP,DI,IoC容器

    1. 血案由来 近期我在为Lazada卖家中心做一个自助注册的项目,其中的shop name校验规则较为复杂,要求:1. 英文字母大小写2. 数字3. 越南文4. 一些特殊字符,如“&”,“- ...

随机推荐

  1. dedecms 文章根据 权重排序

    原文链接 一: dede:list   标签 找到 /include/arc.listview.class.php if($orderby=="senddate" || $orde ...

  2. android sdk 历史版本下载地址

    https://developer.android.google.cn/studio/archive#android-studio-3-0?utm_source=androiddevtools& ...

  3. Python基础之自定义工具类

    class ListHelper: @staticmethod def find_all(target, func_condition): """ 查找列表中满足条件的所 ...

  4. 查询Python版本

  5. [.net 面向对象程序设计深入](26)实战设计模式——策略模式 Strategy (行为型)

    [.net 面向对象程序设计深入](26)实战设计模式——策略模式 Strategy (行为型) 1,策略模式定义 策略模式定义了一系列的算法,并将每一个算法封装起来,而且使它们还可以相互替换.策略模 ...

  6. request,reponse对象中的方法

    1.request对象 客户端的请求信息被封装在request对象中,通过它才能了解到客户的需求,然后做出响应.它是HttpServletRequest类的实例. 序号 方 法 说 明 1   obj ...

  7. MySql的编译安装

    一 前期准备 1 cmake包,要求2.8以上版本 https://cmake.org/download/ 2 boost库包 boost Boost库是一个可移植.提供源代码的C++库,作为标准库的 ...

  8. 仿微信的IM聊天时间显示格式(含iOS/Android/Web实现)[图文+源码]

    本文为原创分享,转载请注明出处. 1.引言 即时通讯IM应用中的聊天消息时间显示是个再常见不过的需求,现在都讲究用户体验,所以时间显示再也不能像传统软件一样简单粗地暴显示成“年/月/日 时:分:秒”这 ...

  9. Kubernetes(k8s)1.12.2集群搭建

    本博客搭建k8s集群1.12.2版本 1. 准备2台以上最低2核4G的服务器 2. 关闭机器的防火墙 12 systemctl disable firewalldsystemctl stop fire ...

  10. [Swift]LeetCode447. 回旋镖的数量 | Number of Boomerangs

    Given n points in the plane that are all pairwise distinct, a "boomerang" is a tuple of po ...