C#實(shí)現(xiàn)添加/替換/提取或刪除Excel中的圖片
在Excel中插入與數(shù)據(jù)相關(guān)的圖片,能將關(guān)鍵數(shù)據(jù)或信息以更直觀的方式呈現(xiàn)出來,使文檔更加美觀。此外,對(duì)于已有圖片,你有事可能需要更新圖片以確保信息的準(zhǔn)確性,或者將Excel 中的圖片單獨(dú)保存,用于資料歸檔、備份或在其他項(xiàng)目中重復(fù)使用。
本文將介紹如何在.NET 程序中通過C# 在Excel中插入圖片,或者替換、提取、刪除Excel中的圖片。
本文需要用到一個(gè)免費(fèi)庫 Free Spire.XLS for .NET。該庫可以在Visual > Studio > NuGet程序包管理器中搜索 “FreeSpire.XLS” 來安裝。也可以通過下載產(chǎn)品包后手動(dòng)添加引用。
C# 在Excel中插入圖片
免費(fèi)Spire.XLS庫提供的 Worksheet.Pictures.Add(int topRow, int leftColumn, Image image) 方法可在工作表指定單元格中插入圖片,并返回一個(gè) ExcelPicture 對(duì)象。然后你可以通過ExcelPicture類下的各屬性設(shè)置圖片的寬度、高度、與單元格邊框的距離等。
C#代碼:
using Spire.Xls;
namespace InsertImageInExcel
{
class Program
{
static void Main(string[] args)
{
// 創(chuàng)建工作簿
Workbook workbook = new Workbook();
// 獲取第一張工作表
Worksheet sheet = workbook.Worksheets[0];
// 在指定單元格中插入圖片(此處為第一行第二列,即B1單元格)
ExcelPicture pic = sheet.Pictures.Add(1, 2, "示例.png");
// 設(shè)置圖片寬高度
pic.Width = 120;
pic.Height = 120;
// 調(diào)整圖片所在位置的列寬和行高
sheet.Columns[1].ColumnWidth = 20;
sheet.Rows[0].RowHeight = 110;
// 設(shè)置單元格邊框與圖片之間的距離
pic.LeftColumnOffset = 90;
pic.TopRowOffset = 20;
// 保存Excel文件
workbook.SaveToFile("插入圖片.xlsx", ExcelVersion.Version2016);
}
}
}

C# 替換Excel中的圖片
要替換Excel中的圖片,我們可以先通過 Worksheet.Pictures[index] 屬性獲取工作表中指定的圖片,然后加載一張新圖片并將其賦值給 ExcelPicture 的 Picture 屬性,從而完成圖片的替換操作。
C#代碼:
using Spire.Xls;
using Spire.Xls.Collections;
using System.Drawing;
namespace ReplacePictureinExcel
{
class Program
{
static void Main(string[] args)
{
// 加載Excel文檔
Workbook workbook = new Workbook();
workbook.LoadFromFile("插入圖片.xlsx");
// 獲取第一張工作表
Worksheet sheet = workbook.Worksheets[0];
// 取工作表中第一張圖片
ExcelPicture pic = sheet.Pictures[0];
// 替換圖片
pic.Picture = Image.FromFile("pic.jpg");
// 保存文檔
workbook.SaveToFile("替換圖片.xlsx", ExcelVersion.Version2016);
}
}
}

C# 提取Excel中的圖片
提取Excel中的圖片的實(shí)現(xiàn)思路為先遍歷工作表中的所有圖片,然后通過 ExcelPicture.Picture.Save() 方法將每一張圖片保存到指定的文件路徑。
C#代碼:
using Spire.Xls;
namespace ExtractImages
{
class Program
{
static void Main(string[] args)
{
// 加載Excel文檔
Workbook workbook = new Workbook();
workbook.LoadFromFile("圖標(biāo).xlsx");
// 獲取第一張工作表
Worksheet sheet = workbook.Worksheets[0];
// 遍歷工作表中所有圖片
for (int i = sheet.Pictures.Count - 1; i >= 0; i--)
{
// 提取圖片保存到指定路徑
ExcelPicture picture = sheet.Pictures[i];
picture.Picture.Save(string.Format("提取圖片\\圖片-{0}.png", i));
}
}
}
}

C# 刪除Excel中的圖片
對(duì)于Excel中的不相關(guān)或錯(cuò)誤圖片,我們可以使用 Worksheet.Pictures[index].Remove() 方法通過索引刪除指定圖片。要?jiǎng)h除所有圖片,可以遍歷每張圖片然后刪除。
C#代碼:
using Spire.Xls;
namespace DeleteImages
{
class Program
{
static void Main(string[] args)
{
// 加載Excel文檔
Workbook workbook = new Workbook();
workbook.LoadFromFile("圖標(biāo).xlsx");
// 獲取第一張工作表
Worksheet sheet = workbook.Worksheets[0];
// 遍歷每一張圖片并刪除
for (int i = sheet.Pictures.Count - 1; i >= 0; i--)
{
sheet.Pictures[i].Remove();
}
// 保存文檔
workbook.SaveToFile("刪除圖片.xlsx", ExcelVersion.Version2016);
}
}
}

除了操作Excel工作表中的圖片外,免費(fèi)庫Free Spire.XLS for .NET 還支持操作多其他種元素,如形狀、圖表、超鏈接、水印等。
到此這篇關(guān)于C#實(shí)現(xiàn)添加/替換/提取或刪除Excel中的圖片的文章就介紹到這了,更多相關(guān)C#操作Excel圖片內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
c# 面試必備線程基礎(chǔ)知識(shí)點(diǎn)
這篇文章主要介紹了c# 面試必備線程基礎(chǔ)知識(shí)點(diǎn),幫助大家更好的鞏固,掌握線程的基礎(chǔ)知識(shí),感興趣的朋友可以了解下2020-11-11
C#實(shí)現(xiàn)類似新浪微博長URL轉(zhuǎn)短地址的方法
這篇文章主要介紹了C#實(shí)現(xiàn)類似新浪微博長URL轉(zhuǎn)短地址的方法,涉及C#操作正則表達(dá)式的相關(guān)技巧,非常具有實(shí)用價(jià)值,需要的朋友可以參考下2015-04-04
C#使用迭代法實(shí)現(xiàn)Fibnaci數(shù)列
這篇文章主要介紹了C#使用迭代法實(shí)現(xiàn)Fibnaci數(shù)列的方法,較為詳細(xì)的分析了Fibnaci數(shù)列的原理與迭代法實(shí)現(xiàn)技巧,需要的朋友可以參考下2015-05-05
使用設(shè)計(jì)模式中的工廠方法模式進(jìn)行C#編程的示例講解
這篇文章主要介紹了使用設(shè)計(jì)模式中的工廠方法模式進(jìn)行C#編程的示例講解,工廠方法模式可以看作是對(duì)簡單工廠模式的進(jìn)一步擴(kuò)展,需要的朋友可以參考下2016-02-02

