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#數(shù)據(jù)綁定之向查詢中添加參數(shù)(.Net連接外部數(shù)據(jù)庫)
本實(shí)例主要練習(xí)了ADO.Net連接到外部數(shù)據(jù)庫的基礎(chǔ)上,向查詢中添加參數(shù)。使用的是ACCESS數(shù)據(jù)庫2014-04-04webBrowser執(zhí)行js的方法,并返回值,c#后臺(tái)取值的實(shí)現(xiàn)
下面小編就為大家?guī)硪黄獁ebBrowser執(zhí)行js的方法,并返回值,c#后臺(tái)取值的實(shí)現(xiàn)。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2016-12-12Visual C#.Net 網(wǎng)絡(luò)程序開發(fā)-Socket篇
Visual C#.Net 網(wǎng)絡(luò)程序開發(fā)-Socket篇...2007-03-03C#實(shí)現(xiàn)簡(jiǎn)單的計(jì)算器功能
這篇文章主要為大家詳細(xì)介紹了C#實(shí)現(xiàn)簡(jiǎn)單的計(jì)算器功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-01-01新手小白用C# winform 讀取Excel表的實(shí)現(xiàn)
這篇文章主要介紹了新手小白用C# winform 讀取Excel表的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2021-01-01c#獲取季度時(shí)間實(shí)例代碼(季度的第一天)
這篇文章主要介紹了c#獲取季度時(shí)間:季度的第一天、季度的最后一天等功能,大家參考使用吧2013-12-12