直接绘图到Excel单元画布

Chr*_*sto 5 c# excel vsto

有没有一种方法可以使用VSTO将图像直接绘制到包含Excel单元格的画布上,而无需插入形状?

我已经看到了它的完成,而且我知道我似乎无法找到信息来源。

    Range cell = sheet.Cells[1, 1];

    var border = cell.Borders[XlBordersIndex.xlDiagonalDown];
    border.Weight = XlBorderWeight.xlThin;
    border.LineStyle = XlLineStyle.xlContinuous;
Run Code Online (Sandbox Code Playgroud)

此代码段似乎在单元格的画布内生成了一个图形。我需要访问绘制到的图层。

Pat*_*man 2

不幸的是,没有办法直接在画布上绘图,至少不能通过公共 API,并且当您想要重用绘图 Windows 窗体控件的代码时,您绝对不能使用 GDI+ 绘图引擎来绘制您建议的内容。

我正在研究直接使用 Windows 进行绘图的可能性,但这似乎也不可能,因为 Excel 不保留每个单元格的句柄,因此很难知道要绘制哪个单元格。另外,这张图不会持久,我认为这是一个主要缺点。


你自己找到了这部电影,我认为那里有一个可行的选择。如果您可以将绘图渲染为图像,则可以通过公式插入内联绘图(请注意,图片仍然是您不喜欢的形状,但我想我们可以对这些进行例外处理)。

如果使用 OLE 对象或渲染需要 OLE 对象,我建议不要使用它们。在我看来,它们太“老派”了,无法与 Windows 桌面上除 Office 之外的任何其他程序一起使用。