【发布时间】:2018-08-31 13:30:14
【问题描述】:
我们正在开发 web api,从中可以下载 excel 和数据。在网上搜索时,我们发现了 npoi、epplus、closexml 等库。
我们真的需要使用这些库来处理 excel 还是使用标准方法?
我们正在使用 asp.net core 进行 web api 开发。
编辑: 基本上我们的前端是在我们的角度 5 正在公开 web api。在 web api 中,我们编写了获取数据的逻辑,在获取数据后,我们需要以提供的特定格式/模板(单元格、列方式、工作表方式等)放置。我们需要在excel中导出相当多的行。
我们的数据库和 API 也是基于 azure 的。
对此的任何帮助表示赞赏!
【问题讨论】:
-
"我们真的需要使用这些库来处理 excel" 是的。或者您可以使用 excel 互操作,但是您需要在网络服务器上使用 excel,并且互操作不是非常可扩展的。另外,什么是“标准方法”?听起来……好得令人难以置信;)
-
这还取决于您的目标是 .NET Framework 还是 .NET Core
-
您将什么定义为“标准方法”?这些库是处理和操作 Excel 文件的合理选择。如果您只想下载已经创建的 excel 文件,那么您不需要任何这些。您还没有真正清楚地定义要求和流程,我们无法给您正确的答案。
-
@XamDev 该链接中的代码创建了一个 HTML 文档,而不是 Excel 文档。您可以在下载它时给它一个 .xlsx 扩展名,当然 Excel 可以读取 HTML 文件,但它不是 Excel 文件。它不能包含公式、宏等内容。也许它足以满足您的要求,但是如果您想创建实际上是 Excel 格式并且可以利用 Excel 特定功能的东西,那么您需要使用另一个库。而且我不会以任何方式将这种方法称为“标准”。这只是完成特定任务的一种方式。
-
所以让我们把这个过程分成几部分。 1) 从模板创建文件并 2) 填充数据 - 假设您要制作真正的 Excel 文件而不是 HTML 文档,那么这两者都将由 Excel 代码库处理,例如NPOI 或任何你喜欢的。 3) 然后,假设您可以从库中以二进制形式获取内容,您可以使用诸如 memorystream 之类的标准方法流式传输文件内容以供下载。任何展示如何在 .NET 中下载文件的教程都应该给你这个想法。如果您无法直接从库中获取二进制流,则可能必须先保存到临时文件中
标签: c# excel asp.net-core