C#专家和 ASP.NET 开发人员,我发现自己现在被分配到 Office加载项项目。幸运的是,我过去曾参与过几个 Excel加载项,但在我的脑海里一切都模糊不清,我从来没有机会以结构良好的方式学习它。
我很惊讶地注意到 SO 并且整个互联网缺少 VSTO , Word DOM , OpenXML <的正确文档缺乏可能是夸大其词,但它并不丰富或组织良好,这是肯定的。
所以我正在寻找的基本上它是概述,快速启动或备忘单,但是你想要称之为,包含Office开发重要部分的高级摘要。
PS:我也将在研究期间发表我的发现。
答案 0 :(得分:2)
我的2美分
1)对于单词中的最新艺术字,您需要在Word中插入OpenXML数据。对于Excel \ Powerpoint,事情变得更容易,你可以使用互操作。
2)不要总是信任文档。如果你得到一个int而不是一个bool返回值,它主要是来自MsoTriState的值。例如大胆的财产应按照here的要求返回bool。但是,它返回int。所以,你必须把它像“(MsoTriState)returnedBoldValue”一样来表明这个整数实际意味着什么。
3)安装可能会很痛苦,考虑使用像Advanced Installer这样的现成产品(我发现它比其他产品便宜)。其他人也可能是好的或更好的。 4)表格样式可能是一种痛苦。 Here是您需要将其用于Powerpoint的奇怪ID的列表。5)TextFrame2对Word仍然无效(即使文档可能另有说明)。它仅适用于Excel和Powerpoint。对于Word,您必须使用TextFrame。
6)不支持WPF。但是,经过一些研究,我能够让它工作得很好。您需要确保加载资源字典,它们也可以正常工作。
7)窗口协会是一个问题(父母 - 孩子)。 WindowInteropHelper是你的朋友。现在,我会在这里停下来。我稍后会发布一些链接。
答案 1 :(得分:0)
文档级架构
文件“包含” 文档包含加载加载项所需的相关信息。不使用Registry。
应用程序级架构
直接插入Office并由Office加载。不可知的文件。它通过注册表项注册。
<强>丝带强>
Visual Designer支持。它会自动处理状态。
功能区X
它允许更好的自定义。这是XAML之类的。没有可视设计师。它不处理状态。您需要使用回调来自行处理状态。
Word DOM - 文档对象模型
Application
Documents
StoryRanges
Range
Styles
Style
Windows
Window
Panes
Pane
没有什么特别的,只是另一个DOM,与HTML非常相似。但是,它需要一段时间才能使用它,互联网上的信息并不像人们希望的那么丰富。
操纵DOM
Windows窗体控件
主机控件(Interop Word对象周围的包装器)
<强>部署强>