C#打开Excel电子表格冻结UI(使用任务打开)

时间:2017-01-17 11:24:15

标签: c# wpf excel

我有一个WPF应用程序,可以打开一个大的excel文件。当我实例化excel工作簿时,UI会冻结,即使实例化发生在Task中也是如此。

这是UI中的代码:

    excelFile = new ExcelManipulator(dlg.FileName);
    Task launchExcel = excelFile.launchExcelAsync();
    await launchExcel;

这是对象类中的代码:

    private void launchExcel()
    {
        workbook = excelApp.Workbooks.Open(Path);//problem!
    }

    public Task launchExcelAsync()
    {
        return Task.Run(() => launchExcel());
    }

课程的一部分

public class ExcelManipulator
{

    public string Path { get; }
    private Application excelApp { get; }
    public Workbook workbook { get; set; }
    ....
}

构造函数的一部分

    public ExcelManipulator(string path)
    {
        Path = path;
        excelApp = new Application();
        //now in seperate function
        workbook = excelApp.Workbooks.Open(Path);//this was originally here.
    }

即使我尝试在ExcelManipulator构造函数中打开工作簿,我也会得到相同的结果。

赞赏任何建议或观点

1 个答案:

答案 0 :(得分:0)

你让它可见吗?

excelApp.Visible = true;

另一件让我想到的事情是

excelApp.ScreenUpdating = true;