EPPlus Excel AddPicture错误“列号出界”
我有以下代码:
具有“excelImage”初始化的行会抛出exception:列号超出范围。 问题的解决scheme是什么?
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);
这似乎是当前(4.0.5)EPPlus中的一个错误。 尽pipe最近发布了当前的版本, CodePlex上未解决的问题仍然很多,所以我没有看到任何接近的固定版本。
我通过下载源代码解决了这个问题,在EPPlus / Drawing / ExcelDrawingBase.cs中手动更正4行并重新编译。
行是513,515(都在SetPixelHeight(int, float)
)和540,542(在SetPixelWitdh(int, float)
)。
我将这两行中From.Column
或From.Row
的出现次数更改为Math.Max(From.Column, 0)
和Math.Max(From.Row, 0)
。
这里的问题是, From
属性是一个不知何故未被正确初始化的对象,因此From.Row
和From.Column
的值被设置为int.MinValue
(它不是一个有效的列/行索引)可能会猜测。
我一直在寻找解决方法,不需要编辑源代码,但找不到任何:希望这会有所帮助。