C# 通过dotnet控制excel?
我正在尝试运行一个将数据插入表的存储过程。完成此操作后,我正在刷新存储在本地计算机中的excel(此excel与数据库有数据连接) 我遇到了一些问题,因为刷新需要花费时间,之后我想保存excel,因为excel很早就会被调用。我想在刷新完成后从excel中获取控制权 我可以通过C#读取excel的状态吗 我一直在尝试使用异步代码来阻止当前线程并刷新另一个线程中的excel。这种方法的问题是,即使刷新仍在运行,线程仍会立即返回(task.iscompleted返回true) 我怎样才能避免这种情况 此外:C# 通过dotnet控制excel?,c#,.net,excel,async-await,vba,C#,.net,Excel,Async Await,Vba,我正在尝试运行一个将数据插入表的存储过程。完成此操作后,我正在刷新存储在本地计算机中的excel(此excel与数据库有数据连接) 我遇到了一些问题,因为刷新需要花费时间,之后我想保存excel,因为excel很早就会被调用。我想在刷新完成后从excel中获取控制权 我可以通过C#读取excel的状态吗 我一直在尝试使用异步代码来阻止当前线程并刷新另一个线程中的excel。这种方法的问题是,即使刷新仍在运行,线程仍会立即返回(task.iscompleted返回true) 我怎样才能避免这种情况
- 我可以单独刷新这些表吗
- 刷新完成后,我可以将控制权传递回.NET吗
private static async Task refreshExcelAsync(Excel.Workbook sampleWorkBook)
{
Task t = new Task
(
() =>
{
sampleWorkBook.RefreshAll();
}
);
t.Start();
await t;
}
我使用以下方法调用此函数:
Task refreshExcelTask = refreshExcelAsync(sampleWorkBook);
Task t = await Task.WhenAny(refreshExcelTask);
在此调用之后,我将根据条件t.IsCompleted调用saveExcel任务
但这种情况总是会变为真 您可以从
工作簿
的工作表
中获取查询表
。从那里,您可以刷新它们,传递false
以禁用它们。您还可以订阅后台刷新完成时将收到通知的事件。您的代码表明您已经通过.NET控制Excel。那么,有什么方法可以通过.net控制excel呢?确切的意思是?我只是在做一个refreshAll(),如果可以的话,我想单独刷新工作表,刷新完成后,我想在dotnet web应用程序中重新获得当前无法获得的控件。作为Excel的负责人,尽管服务器组件的情况本应发生变化,在服务器上运行时可能会出现严重的扩展和线程问题。