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

时间:2017-02-28 15:28:08

标签: c# excel office-interop closedxml

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

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

var WorkbookCopyFrom = new XLWorkbook(WorksheetToCopy);

即使有人打开它,我怎么能打开它?

2)在我以前的公司中,我使用Office Interop Nuget包来做类似的事情。在该软件包中,我可以使用以下代码显示excel文件:

excelApp.Visible = true;

ClosedXML中是否有类似内容?

2 个答案:

答案 0 :(得分:2)

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

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

答案 1 :(得分:0)

class Node { public: // Contact &_c; // to be replaced Contact _c; Node(Contact &c); Node * _next; }; ClosedXML的包装,受到相同的限制。

  1. OpenXML无法打开当前正在使用的文件。
  2. OpenXML旨在不依赖于系统上安装的Excel。所以这是不可能的。 Office Interop是唯一的方式,或者也许是WINAPI。
  3. OpenXML无关。