(C#)我可以以编程方式将XLSX单元格设置为图片/图像吗?

我希望能制作包含一些图片的电子表格(从文件中embedded图片),我开始看EPPlus (看起来像一个伟大的图书馆)

然而,这些图像似乎并不是绑定在一个单元上的,而是一个x,y坐标。

有EPPlus的方式或其他方式来设置一个单元格的图片(然后操纵单元格的大小?)

SETPOSITION

您可以插入图片,然后调整.Top.Left ,使其与相应单元格的.Top.Leftalignment。 您可以使用与图片的高度相同的单位来设置单元格行的.height (虽然有最大高度)。 列的.ColumnWidth以文本字符为单位,所以我所做的就是:

 myColumn.ColumnWidth = myColumn.ColumnWidth / myColumn.Width * myPicture.Width 

而且我运行了两次,因为有时第一次设置.ColumnWidth ,它没有被精确设置。

我的误解

这是我在环顾四周时发现的评论:

Excel的任何版本都不允许您将图片插入到单元格中。 图片被插入工作表,并将始终浮动。 图片的其中一个属性可以设置为“使用单元格移动和resize”,但只有在插入,删除或调整基础行和列时才移动或拉伸图片。 它不会将图片限制在单元格中。

所以也许我只需要适当地设置属性。

如果我能以编程的方式做到这一点,我将全部设置

编辑

下面的代码几乎是我想要/需要的。

请注意,在插入图片之前,我将覆盖的单元格的宽度和高度设置为适当的大小。

 private static void AddImage(ExcelWorksheet ws, int rowIndex, String imageFile) { ExcelPicture picture = null; Bitmap image = new Bitmap(imageFile); if (image != null) { picture = ws.Drawings.AddPicture("pic" + rowIndex.ToString(), image); picture.From.Column = 0; picture.From.Row = rowIndex-1; picture.SetSize(320, 240); } } 

我不认为你可以在Excel中做到这一点; 当您将图片添加到Excel工作表时,它是一个浮动对象,它不固定到特定的单元格。

EPPLUS文档中find应该可以使用值为TwoCellEditAs设置。

 picture.EditAs = eEditAs.TwoCell; 

“指定当前graphics将移动并resize,以维护其行和列的锚点(即,对象锚定到实际的行和列)。”