VSTO:在 Excel 工作表上绘图

Posted

技术标签:

【中文标题】VSTO:在 Excel 工作表上绘图【英文标题】:VSTO: Drawing on top of Excel worksheet 【发布时间】:2011-08-22 13:29:31 【问题描述】:

我用 C# 编写了一堆方便的 Excel 插件,一切都很好。但我无法弄清楚的一件事是是否可以在工作表控件上放置图形(位图、形状等),例如通过将函数附加到其绘制事件处理程序。

我不想以任何方式实际更改文档,它只是为了临时突出显示我的加载项如何查找和解释工作表中的数据。我想做的最简单的事情就是在特定范围内画一个边框。

我可以通过创建一堆透明的***窗口来尝试将自己剪辑到文档窗口来做到这一点,但这确实是一个令人讨厌的解决方案,而且我认为这些窗口会妨碍用户输入,也是。

【问题讨论】:

为什么不使用范围的边框或背景颜色?添加图纸听起来既复杂又脆弱。 因为我不想更改电子表格中的任何内容。我只想说明我的加载项如何选择解释工作表中的数据。一方面,编辑工作表可能会导致加载项重新考虑其解释,这意味着您将让加载项在用户执行相同操作时尝试更改工作表。如果工作表已经包含边框和背景颜色怎么办? @ReturningTarzan 你找到答案了吗? 【参考方案1】:

这是迟到的答案,但对于未来的读者,我认为值得澄清。无法使用绘图事件在 Excel 顶部绘制任何内容。但是有一种内置方法可以同时突出显示一个或多个范围 - 只需从代码中选择它即可。

【讨论】:

以上是关于VSTO:在 Excel 工作表上绘图的主要内容,如果未能解决你的问题,请参考以下文章

如何复制包含 powerquery 的 Excel 工作表,以便新工作表上的查询独立于原始工作表上的查询

如何在保留所有其他工作表的同时覆盖现有 Excel 工作表上的数据?

找不到自定义程序集时如何立即关闭/关闭 Excel VSTO 工作簿

使用 Perl 在 Excel 2010 工作表上保存 AsXMLData

直接在 Excel 工作表上使用 ActiveX 控件的必要条件和充分条件是啥?

将多个文本文件写入不同工作表上的一个 Excel 工作簿?