我希望制作包含一些图片的电子表格(嵌入文件中的图片),然后我开始查看EPPlus(看起来像一个很棒的图书馆)
然而,似乎图像并未绑定到单元格 - 而是绑定到x,y,坐标。
有没有办法使用EPPlus或其他方式将单元格设置为图片(然后操纵单元格的大小?)
SETPOSITION
答案 0 :(得分:4)
我的误解......
这是我在环顾四周时发现的评论:
没有版本的Excel允许您将图片插入单元格。图片将插入到工作表中并始终浮动。 图片的一个属性可以设置为“使用单元格移动和调整大小”,但只有在插入,删除或调整基础行和列时才会移动或拉伸图片。它不会将图片限制在单元格内。
所以也许我只需要适当地设置属性。
如果我可以do this programmatically我将全力以赴
修改强>
以下代码几乎完全符合我的需要。
请注意,在插入图片之前,我将我正在覆盖的单元格的宽度和高度设置为适当的尺寸。
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);
}
}
答案 1 :(得分:2)
您可以插入图片,然后调整其.Top
和.Left
,使其与相应单元格的.Top
和.Left
对齐。您可以使用与图片的.RowHeight
相同的单位设置单元格行的.height
(尽管有最大高度)。列的.ColumnWidth
以文本字符宽为单位,因此我所做的是:
myColumn.ColumnWidth = myColumn.ColumnWidth / myColumn.Width * myPicture.Width
我运行了两次,因为有时第一次设置.ColumnWidth
时,它没有精确设置。
答案 2 :(得分:1)
我认为你不能在Excel中做到这一点;当您将图片添加到Excel工作表时,它是一个浮动对象,它不固定到特定单元格。
答案 3 :(得分:0)
在EPPLUS
文档中找到,可以使用值EditAs
上的TwoCell
设置。
picture.EditAs = eEditAs.TwoCell;
"指定当前图形应移动并调整大小以保持其行和列锚点(即,对象锚定到实际的from和to row and column)。 "