You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

.NET Core 3.1升级.NET 6后SXSSFWorkbook.Write报错求助

问题解决:.NET 6升级后NPOI SXSSFWorkbook.Write方法报错找不到SharpZipLib构造函数

问题原因

这个错误源于NPOI 2.6.0依赖的ICSharpCode.SharpZipLib版本与.NET 6环境不兼容,或是项目中存在多版本SharpZipLib导致依赖解析异常。.NET Core 3.1环境下能正常运行,是因为当时的依赖版本匹配,升级.NET 6后依赖解析逻辑变化,触发了版本不兼容问题。

解决方案

1. 统一SharpZipLib版本

NPOI 2.6.0官方适配的SharpZipLib版本为0.86.0,执行以下操作:

  • 卸载项目中现有SharpZipLib包:
    Uninstall-Package ICSharpCode.SharpZipLib
    
  • 安装指定兼容版本:
    Install-Package ICSharpCode.SharpZipLib -Version 0.86.0
    

2. 清理并重新还原依赖

  • 删除项目根目录下的bin和obj文件夹
  • 执行NuGet还原命令:
    dotnet restore
    

3. 排查依赖冲突

打开NuGet包管理器的「已安装」标签,检查是否存在多个版本的SharpZipLib。若有,通过「管理NuGet程序包」将所有引用统一为0.86.0版本。

4. 备选方案:调整Write方法调用

若上述方法无效,可尝试移除Write方法的第二个参数(true表示自动关闭流),手动管理流生命周期:

var tempXlsxFile = $@"{Path.Combine(Path.GetTempPath(), Path.GetFileNameWithoutExtension(tempFile.Name))}.xlsx";

await using Stream tempFileStream = _fileSystem.File.OpenWrite(tempXlsxFile);
workbook.Write(tempFileStream);
await tempFileStream.FlushAsync();

内容的提问来源于stack exchange,提问作者user3498203

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.07 14:18:10