我正在尝试使用NPOI从C#中读取excel文件。下面是我用来初始化变量的代码片段。但在初始化工作簿时,下面是我得到的异常。
public class Excelhandler
{
public static XSSFWorkbook workbook;
public static FileStream fileStream;
static Excelhandler()
{
try
{
string pth = AppDomain.CurrentDomain.SetupInformation.ApplicationBase;
string actualPath = pth.Substring(0, pth.LastIndexOf("bin"));
string projectPath = new Uri(actualPath).LocalPath;
string path = projectPath + @"TestData\Data.xlsx";
//string path = ConfigurationManager.AppSettings["TestDataPath"];
fileStream = new FileStream(path, FileMode.Open, FileAccess.Read);
workbook = new XSSFWorkbook(fileStream);
}
同一段代码在其他C#项目中也可以工作,但突然之间就不能工作了。以下是我正在使用的版本:
NPOI-2.3.0
SharpZipLib(NPOI依赖项)- 1.0.0
.Net框架-4.5.2
异常-访问安全关键方法'ICSharpCode.SharpZipLib.Zip.ZipInputStream..ctor(System.IO.Stream)‘的安全透明方法'NPOI.OpenXml4Net.OPC.ZipPackage..ctor(System.IO.Stream,( NPOI.OpenXml4Net.OPC.PackageAccess)’的尝试失败。
发布于 2018-09-19 10:50:01
我在使用VS2017、NPOI2.3.0和SharpZipLib 1.0.0时也遇到了这个问题。
谢谢,CrazyDev。
我没有解决在NuGet中将SharpZipLib版本改为0.86的问题。经过测试,我发现它还应该删除App.config中的以下内容:
<assemblyIdentity name="ICSharpCode.SharpZipLib" publicKeyToken="1b03e6acf1164f73" culture="neutral"/>
<bindingRedirect oldVersion="0.0.0.0-1.0.0.999" newVersion="1.0.0.999"/>
这样,不仅可以将SharpZipLib的版本回滚到0.86,还可以修改App.config。
发布于 2018-09-05 08:28:48
在将SharpZipLib Nuget更新到1.0.0时,我也遇到了同样的异常。已回滚到最低版本0.86.0,如NPOI 2.3.0 Nuget dependency中所示,一切都可以正常工作。这是什么东西。
https://stackoverflow.com/questions/52071698
复制相似问题