[C#] .Net 下操作 Excel 新選擇 EPPlus - 輸出 Excel 中的圖片,取得圖片在 Excel 中的資訊。

2024-02-17

最近因為處理 Excel 比較多,所以分享比較多 EPPlus 遇到的事情跟心得,最近這需求是因為

我要去抓取 Excel 中的圖片,並且把其中的圖片抓出來,這邊是簡化過的範例,畢竟只是寫文章記錄

不用這麼去複雜化案例,這邊是我開一個 Excel 隨便貼入兩張圖,之後我們來測試看看使用 EPPlus 來把兩張圖片在 Excel 中的資訊抓出

並且把檔案輸出成每個圖檔..



直接就分享程式碼因為其實不難,這裡面我抓取了圖片的 Name ,這 Name 似乎就是這圖片之於這 Excel 中的 unique 

還有抓取,這張圖片的 Description,在這我測試案例裡面 Description 是原本我圖片的檔名,這邊還有每張圖片在哪個 Column , Row 

ExcelPackage.LicenseContext = LicenseContext.NonCommercial; System.Console.OutputEncoding = System.Text.Encoding.UTF8; using (var package = new ExcelPackage(AppDomain.CurrentDomain.BaseDirectory + "samplereadimg.xlsx")) { var sheet = package.Workbook.Worksheets["Sheet1"]; foreach (var item in sheet.Drawings) { var picture = item as ExcelPicture; if (item != null) { //Get Image Info in Excel Console.WriteLine(item.Name + "-" + item.Description + ":Form:" + item.From.Column + "," + item.From.Row + ";To:" + item.To.Column + "," + item.To.Row); //Output to File. File.WriteAllBytes(AppDomain.CurrentDomain.BaseDirectory + item.Name + "." + picture.Image.Type.ToString().ToLower(), picture.Image.ImageBytes); } } }


結果:



今天大概分享到這裡,如果要知道那張圖片在 Excel 中的大小,因為每台電腦不同,這可能要透過 Column , Row 的寬度跟高度去計算

這當然又是另一個故事了。


當麻許的碎念筆記 2014 | Donma Hsu Design.