如何使用 ClosedXML (C#) 在 Excel 中处理打开的工作簿?

djb*_*ois 3 c# excel office-interop closedxml

我正在使用 ClosedXML 为 Excel 中的人员制作报告。我有 3 个问题需要帮助。

1)我这里有这段代码,这样我就可以访问工作簿中的数据。除非有人打开该工作簿,否则它可以正常工作。如果可能的话,我不在乎它是否打开只读副本,因为我所做的只是从中访问信息。

var WorkbookCopyFrom = new XLWorkbook(WorksheetToCopy);
Run Code Online (Sandbox Code Playgroud)

即使有人打开了,我怎样才能打开它?

2)在我之前的公司,我使用Office Interop Nuget包来做类似的事情。在该包中,我能够在使用以下代码处理 Excel 文件时显示该文件:

excelApp.Visible = true;
Run Code Online (Sandbox Code Playgroud)

ClosedXML 中有类似的东西吗?

Nic*_*ckB 7

我偶然发现了同样的问题。解决方法可以是打开 FileStream 而不是直接打开文件。

    public void LoadDocumentReadOnly(string fn)
    {
        filename = fn;
        fileStream = new FileStream(fn, FileMode.Open, FileAccess.Read, FileShare.ReadWrite);
        Document = new XLWorkbook(fileStream);
    }
Run Code Online (Sandbox Code Playgroud)

更新:我没有包含变量声明,因为该方法位于类内部。这 3 个变量是类成员。