2016-01-27 22 views
1

我有以下代碼:列數超出範圍:EPPlus Excel中給AddPicture錯誤「列數出界」

與「excelImage」初始化拋出異常的行。 問題的解決方案是什麼?

var range2 = worksheet.Cells ["A" + limiter.ToString()]; 
range2.Value = tokenGood.id; //Take from JSON-array 
worksheet.Row (limiter).Height = 70; //'limiter' is like row iterator 
worksheet.Column (1).Width = 10; 

Bitmap img = new Bitmap(Image.FromFile (PIC_FILENAME)); 
OfficeOpenXml.Drawing.ExcelPicture excelImage = worksheet.Drawings.AddPicture ("random_string", img); //Error Line 
excelImage.From.Column = 3; 
excelImage.From.Row = limiter; 
excelImage.SetSize (60, 60); 

回答

0

這似乎是當前(4.0.5)EPPlus中的一個錯誤。即使當前版本最近已經發布,CodePlex積壓的開放問題是巨大的,所以我沒有看到任何接近的固定版本...

我解決了它通過下載源,手動糾正4行EPPlus/Drawing/ExcelDrawingBase.cs並重新編譯。

行是513,515(都在SetPixelHeight(int, float))和540,542(在SetPixelWitdh(int, float))。

我將這兩行中的出現次數From.ColumnFrom.Row更改爲Math.Max(From.Column, 0)Math.Max(From.Row, 0)

這裏的問題是,From屬性是莫名其妙尚未正確初始化的對象,和From.RowFrom.Column值被這樣設置爲int.MinValue - 這是不是一個有效的行/列的索引,如你所猜測。

我一直在尋找解決方法,不需要編輯源代碼,但找不到任何:希望這會有所幫助。