打开Excel文件,在.NET CORE 3.1中编辑并保存为流



我希望在我的.NET Core 3.1 API中有一个端点,在那里我打开一个模板Excel文件,编辑几个单元格,然后将编辑后的Excel文件作为流返回。

我原以为我会使用Microsoft.Office.Interop.Excel,但当通过Nuget包添加引用时,我收到了以下错误:

Could not load file or assembly 'office, Version=15.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c'

在将其添加为COM引用后,我得到以下错误:

Retrieving the COM class factory for component with CLSID {00020819-0000-0000-C000-000000000046} failed due to the following error: 80040154 Klasse is niet geregistreerd (0x80040154 (REGDB_E_CLASSNOTREG)).

我也不想保存编辑后的模板,它应该保存为流,这样我就可以返回Excel流。

有人知道我想做什么是否可能吗?是的,怎么做?

asp.net核心是独立于平台的,如果没有各种配置,它将无法很好地与Windows程序集配合使用。现在,我相信你可以在3.1中使用它,也许如果你像这个答案中解释的那样使用COMReferences:.NET core 3.0和MS Office Interop

但我在asp.net核心应用程序中使用interop所做的是将目标框架改为.net5。

如果您能够使用net5.0,那么将其添加到.csproj文件中,它应该可以工作:

<TargetFramework>net5.0-windows</TargetFramework>
<UseWPF>true</UseWPF>

netcoreapp3.1中只包含<UseWPF>true</UseWPF>也可以,但我还没有测试过。

最新更新