检查Excel是否处于脏状态

13

有没有办法知道Excel是否处于脏状态。

所谓脏状态是指: 当您在Excel上执行任何操作并关闭保存按钮时,Excel会要求您保存文件。 因此,在编辑文件时必须设置某些标志。

我能否通过C#代码了解Excel文件的状态?

搜索了很多资料,但并没有太多帮助。 一种选项是通过查看 GetRibbonControlEnabled("FileNewDefault") 来了解Excel是否处于编辑状态。

在这种情况下,只有在执行此方法时才能看到Excel是否处于编辑状态。

如果我想知道自打它打开以来Excel是否已被编辑或变脏,该怎么办?

请不要建议启动一个后台线程,通过使用上述函数来持续监视Excel是否处于编辑模式。

非常感谢任何帮助。

2个回答

8

请看 Workbook.Saved 属性。它可以告诉你自上次打开文件以来用户是否修改了该文档。

bool isDirty = !Globals.Application.ActiveWorkbook.Saved;

更正 - 感谢 @GordThompson 的发现! - SliverNinja - MSFT

3

在Excel VBA模块中,可以测试ActiveWorkbook.Saved属性,如果它为False,则工作簿具有未保存的更改(即"脏")。详细信息在此处。请尝试从您的C#代码检查该属性。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接