• C# 操作Excel图形——绘制、读取、隐藏、删除图形


    简介

    本篇文章将介绍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[0];
    
                //添加“太阳”形状的图形,并填充颜色,设置图形的透明度为50%
                IPrstGeomShape Triangle = sheet.PrstGeomShapes.AddPrstGeomShape(2, 2, 170, 160, 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(2, 7, 140, 140, PrstGeomShapeType.NoSmoking); heart.Fill.ForeColor = Color.Red; heart.Fill.FillType = ShapeFillType.Gradient; //添加云朵形状的图形 IPrstGeomShape Cloud = sheet.PrstGeomShapes.AddPrstGeomShape(15, 2, 160, 160, PrstGeomShapeType.Cloud); //设置图形阴影效果 Cloud.Shadow.Angle = 90; Cloud.Shadow.Distance = 10; Cloud.Shadow.Size = 100; Cloud.Shadow.Color = Color.SteelBlue; Cloud.Shadow.Blur = 30; Cloud.Shadow.Transparency = 1; Cloud.Shadow.HasCustomStyle = true; //添加五角星形状的图形,并加载图片来填充图形 IPrstGeomShape cloud = sheet.PrstGeomShapes.AddPrstGeomShape(15, 7, 160, 160, 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[0];
    
                //提取指定形状中的文本内容,并将提取到的文本保存到指定文档
                IPrstGeomShape shape1 = sheet.PrstGeomShapes[0];
                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[3];
                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[0];
    
                //隐藏第3个图形
                sheet.PrstGeomShapes[2].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[0];
    
                //删除第一个图形
                sheet.PrstGeomShapes[0].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中图形”的介绍,如需转载,请注明出处。

  • 相关阅读:
    OJ推荐【转】
    Eclipse插件推荐:UCDetector: Unnecessary Code Detector
    Android工程目录及其作用简介
    Source not found The JAR file …has no source attachment.
    Unable to execute dex: java.nio.BufferOverflowException. Check the Eclipse log for stack trace.
    Microsoft Visual C++ Runtime error解决方法
    Windows程序设计之Hello,Windows 98程序的声音调试记录
    没有谁是躺着成为谁的【转载】
    下一个7年,我是谁?【转载】
    UEditor编辑器使用教程 百度经验
  • 原文地址:https://www.cnblogs.com/Yesi/p/9442627.html
Copyright © 2020-2023  润新知