gpt4 book ai didi

c# - 是否可以在 Windows docker 容器中运行的 dotnet 核心应用程序中使用 EPPlus?

转载 作者:太空宇宙 更新时间:2023-11-03 12:07:14 26 4
gpt4 key购买 nike

我有一个 dotnet core 2.1 web api,它有一个生成 .xlsx 电子表格的操作。它创建一个浏览器随后可以处理的 FileStreamResult。生成电子表格的代码如下:

using (var excelFile = new ExcelPackage())
using (var worksheet = excelFile.Workbook.Worksheets.Add("Sheet 1"))
{
...
//insert data into worksheet

return new FileStreamResult(new MemoryStream(excelFile.GetAsByteArray()), "application/octet-stream") { FileDownloadName = "Report.xlsx" };
}

在 IIS 中托管它工作正常,并将生成电子表格。当我在 Windows docker 容器中托管应用程序时,特别是图像:microsoft/dotnet:2.1-aspnetcore-runtime-nanoserver-sac2016 我在尝试生成报告时遇到以下异常:

System.TypeInitializationException: The type initializer for 'Gdip' threw an exception. ---> System.DllNotFoundException: Unable to load DLL 'gdiplus.dll'

经过一些研究后,我意识到 gdiplus 不存在于 nanoserver 图像中。

是否可以使用 EPPlus 在 nanoserver 镜像中托管的 dotnet 核心应用程序上创建电子表格?还是我必须使用另一个库来生成 xlsx?如果可能的话,我想使用 EPPlus。我不能使用 linux 容器(不幸的是现在)

最佳答案

我不知道它是否可行,但请尝试注释掉库中使用 System.Drawing.Common 的任何方法,例如 AutoFitColumns()。这就是导致它在我的 Linux 容器上崩溃的原因。

关于c# - 是否可以在 Windows docker 容器中运行的 dotnet 核心应用程序中使用 EPPlus?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54329665/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com