2024-02-17

[C#] .Net 下操作 Excel 新選擇 EPPlus - 插入圖片,技巧使用 AutoFit

最近使用 EPPlus 來解決 , Excel 問題,不免俗的又是遇到一個萬年的問題

如何插入圖片,其實在 Excel 中插入圖片一直都是一個麻煩的問題,因為圖片其實都是浮在儲存格的上面

所以,基本上你很難控制儲存格的大小,但是其實是有一個小技巧,以前我在處理 Excel 也是這樣處理的..

這時候就不能夠用上一篇文章寫得輕鬆倒入資料,這時候要數格子了

其中有幾個處理的技巧

1. 插入圖片位置,需要 Row-1, Column-1 ,因為對齊的關係,才會對應到你要的位置

2.插入圖片的時候 其實為了使用 AutoFit 我將該儲存格放入一個 UTF 的一個空白字元,並且我將該儲存格FontSize 設定成 200px 

這時候,只要下  AutoFit 就會變得跟圖片一樣寬了,這是小技巧

其中我用的空白字是 https://www.compart.com/en/unicode/U+2002

不能用一般半形或是全形的空白,都是沒用的

3. 插入圖片的 Name 一定要是 Unique 不然會出現 

Unhandled exception. System.Exception: Name already exists in the drawings collection at OfficeOpenXml.Drawing.ExcelDrawings.ValidatePictureFile(String Name, FileInfo ImageFile)


廢話不多說就給 Code 吧,因為要簡單的數格子,該說的重點都在上面跟 Code 裡面了


其實每張圖片後面都藏有一個空白的 U+2002 只看不到而已,把圖片移開會看到後面有一個空白