1. 程式人生 > >C# 如何在Excel中繪制圖形

C# 如何在Excel中繪制圖形

msh als style cfb let 陰影 namespace 設置圖 bin文件

本篇文章將介紹C# 如何處理Excel圖形相關的問題,包括以下內容要點:
1、繪制圖形

  • 繪制圖形並添加文本到圖形
  • 添加圖片到圖形
  • 設置圖形陰影效果
    2、 提取圖形中的文本、圖片
    3、設置圖形的顯示、隱藏
    4.、刪除圖形
  • 刪除指定圖形
  • 刪除所有圖形

所需工具:

  • Free Spire.XLS for .NET 8.3 (社區版)
    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];

            //添加“太陽”形狀的圖形,並填充顏色
            IPrstGeomShape Triangle = sheet.PrstGeomShapes.AddPrstGeomShape(2, 2, 170, 160, PrstGeomShapeType.Sun);
            Triangle.Fill.ForeColor = Color.Orange;
            Triangle.Fill.FillType = ShapeFillType.SolidColor;            
            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中圖形”的介紹,如需轉載,請註明出處。

C# 如何在Excel中繪制圖形