我 Nugot SpreadsheetLight。要随后使用它,我需要添加以下用法:
using DocumentFormat.OpenXml;
using DocumentFormat.OpenXml.Spreadsheet;
using SpreadsheetLight;
要识别前两个(“DocumentFormat”),我还需要 NuGet Microsoft 的“Open XML Format SDK”
我得到了最新版本,2.5
然而,即便如此,我还是得到了一个关于需要引用它的错误消息:
“DocumentFormat.OpenXml.Spreadsheet.InlineString”类型在未引用的程序集中定义。您必须添加对程序集“DocumentFormat.OpenXml, Version=2.0.5022.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35”的引用。
这行 SpreadsheetLight 代码引发了该消息:
sl.SetCellValue("A1", true); // "sl" is an SLDocument
因此,我从我的项目中删除了我拥有 NuGot(版本 2.6.0.0,运行时版本 v4.0.30319)的引用,然后通过浏览到 C:\Program Files(x86)\Open XML SDK\V2 添加回引用。 0\lib 并选择“DocumentFormat.OpenXml.dll”
然后我得到一个编译器警告:
发现同一依赖程序集的不同版本之间存在冲突。请在项目文件中将“AutoGenerateBindingRedirects”属性设置为 true。有关详细信息,请参阅http://go.microsoft.com/fwlink/?LinkId=294190。
我注意到我从文件系统添加的 DLL 是 2.5.5631.0 版本,而作为参考安装的 NuGot 版本是 2.6.0.0 版本。运行时版本也不同(v4.0.30319 是由NuGetting“Open XML Format SDK”,但是我手动添加的DLL版本是2.5.5631.0,Runtime Version v4.0.30319
据此,我收集到我应该通过更改为 true 来编辑 .csproj 文件-<AutoGenerateBindingRedirects>false</AutoGenerateBindingRedirects>
但那里不存在 AutoGenerateBindingRedirects。
我不知道我是否应该添加它,如果是的话(在哪个“块”中)。我更喜欢安全地玩它并缓解警告引擎。如何确保 OpenXml 程序集不会引起冲突?