C# 获取到当前处于活跃状态的Excel对象(即已经打开的)c#获取打开的excel
时间: 2024-09-23 13:08:25 浏览: 38
在C#中,如果你已经有运行的Excel应用程序实例,并且想要获取到当前活动的Excel对象(即已打开的Excel文档),通常需要先确定是否有一个已经存在的应用程序实例。以下是一个示例:
```csharp
using Microsoft.Office.Interop.Excel;
// 创建一个变量来存储应用程序实例(如果已经存在)
Application excelInstance = null;
try {
// 如果Office应用尚未启动,则创建一个新的实例
if (ApplicationClass.IsRunning) {
excelInstance = new ApplicationClass();
} else {
// 启动Excel应用程序
excelInstance = new ApplicationClass();
excelInstance.Visible = true; // 显示应用程序界面
}
// 检查当前是否有活动的工作簿
Workbook activeWorkbook = excelInstance.ActiveWorkbook;
if (activeWorkbook != null) {
// 现在activeWorkbook就是正在活跃的Excel对象
Console.WriteLine($"当前活跃的Excel工作簿名称:{activeWorkbook.Name}");
}
} catch (Exception ex) {
Console.WriteLine($"获取Excel对象时出错: {ex.Message}");
}
finally {
// 关闭应用程序,释放资源
if (excelInstance != null && !excelInstance.Disposed) {
excelInstance.Quit();
}
}
```
在这个例子中,我们首先检查`IsRunning`属性以判断Excel是否已经启动。如果未启动,我们就创建一个新的应用程序实例。然后使用`ActiveWorkbook`属性获取当前活动的工作簿。