5

我希望制作包含一些图片的电子表格(从文件中嵌入图片),我开始查看EPPlus(看起来像一个很棒的库)

然而,图像似乎没有与单元格相关联 - 而是与 x,y 坐标相关联。

有没有办法使用 EPPlus 或其他方式将单元格设置为图片(然后操纵单元格的大小?)

设置位置

4

4 回答 4

4

我的误会...

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

没有任何版本的 Excel 允许您在单元格中插入图片。图片被插入到工作表中并且总是浮动的。图片的属性之一可以设置为“使用单元格移动和调整大小”,但只有在插入、删除或调整底层行和列时才会移动或拉伸图片。它不会将图片限制在单元格中。

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

如果我能以编程方式做到这一点,我将一切就绪

编辑

以下代码几乎可以满足我的需求。

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

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);
    }
}
于 2011-09-19T19:01:43.963 回答
2

您可以插入图片,然后对其进行调整.Top,使其与相应单元格的和.Left对齐。您可以使用与图片相同的单位设置单元格行的(尽管有最大高度)。该列的单位是文本字符宽,所以我所做的是:.Top.Left.RowHeight.height.ColumnWidth

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

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

于 2011-09-20T01:19:09.087 回答
1

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

于 2011-09-19T18:50:48.893 回答
0

EPPLUS文档中找到它应该可以使用EditAsvalue 的设置TwoCell

picture.EditAs = eEditAs.TwoCell;

“指定当前图形应移动并调整大小以保持其行和列锚点(即对象锚定到实际的从行和列到行和列)。”

于 2017-07-21T06:04:25.207 回答