C# 操做Excel圖形——繪製、讀取、隱藏、刪除圖形

簡介

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

1.繪製圖形ide

   1.1 繪製圖形並添加文本到圖形工具

   1.2 添加圖片到圖形ui

   1.3 設置圖形陰影效果spa

   1.4 設置圖形透明度code

2. 提取圖形中的文本、圖片orm

3. 設置圖形的顯示、隱藏htm

4. 刪除圖形對象

   4.1刪除指定圖形blog

   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中圖形」的介紹,如需轉載,請註明出處。

相關文章
相關標籤/搜索