標籤:file string range 技術分享 spi dia orange mpi extra
本篇文章將介紹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中繪製圖形