C# 如何在Excel中繪制圖形
阿新 • • 發佈:2018-07-13
msh als style cfb let 陰影 namespace 設置圖 bin文件 本篇文章將介紹C# 如何處理Excel圖形相關的問題,包括以下內容要點:
1、繪制圖形
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中繪制圖形