如何用C#设置Excel的极简界面?

时间:2016-04-30 10:23:42

标签: c# excel vsto

使用C#,我正在编写一个程序,只能使用Excel才能编辑程序提供的某些表格数据。我的程序只创建一个Excel应用程序(Microsoft.Office.Interop.Excel.Application对象),在其中创建工作簿,创建工作表,将数据放入Excel,然后,允许用户编辑这些数据。我的程序可以轻松读取编辑过的数据。原则上,这就是我需要的所有东西。

因此,这意味着我的程序的用户不能格式化Excel中的数据,将Excel文件保存到硬盘驱动器,打开Excel文件等等。用户甚至不需要Excel功能区。使用公式也不是必需的。热键(如“Ctrl + B”使字体变粗,“Ctrl + S”保存文件等等)也应该不可行。

我的问题是:有没有办法简单地为Excel设置这样的极简主义界面?或者我应该手动禁用上面提到的任何方面,一步一步(禁用功能区,关闭热键等等)?

1 个答案:

答案 0 :(得分:0)

在VSTO项目中工作时,您可以使用code禁用大部分/全部用户界面(也有视觉设计师,但我怀疑这对此是否足够)。

要移除内容,请为您要删除的内容添加一个部分,并设置visible =" false"或启用=" false" (用户仍然可以将其添加回功能区,但禁用它会使其显示为灰色)。

e.g:

<?xml version="1.0" encoding="UTF-8"?>
<customUI xmlns="http://schemas.microsoft.com/office/2009/07/customui" onLoad="Ribbon_Load">
 <commands>
  <command idMso="Cut" enabled="false" />
 </commands>
 <ribbon>
  <tabs>
   <tab idMso="TabHome" visible="false" />
  </tabs>
 </ribbon>
 <contextualTabs>
  <tabSet idMso="TabSetDrawingTools" visible="false" />
 </contextualTabs>
 <backstage>
  <tab idMso="TabInfo" visible="false">
 </backstage>
 <contextMenus>
  <contextMenu idMso="ContextMenuText">
   <!-- you can't hide a context menu entirely, you have to hide each item -->
   <button idMso="FontDialog" visible="false" />
  </contextMenu>
 </contextMenus>
</customUI>

如果您以与您相似的方式与Office合作,我也可以这样做,我真的不知道。