有什么好的方法可以从API平台导出Excel吗?

问题描述 投票:0回答:1

我有一个使用自定义API平台资源的Symfony项目(API平台版本是3.2)。 有所有需要的过滤器、状态提供者等。将 JSON 响应返回到我想要的前端。不使用自定义控制器。

但是现在我面临创建Excel导出的需要,但我找不到任何推荐的方法来做到这一点。

对我来说,它可能类似于在 State Provider 返回所有数据后工作的附加层,然后我可以按照我需要的方式对其进行格式化并创建一些 PhpSpreadsheet 并将 StreamedResponse 返回到浏览器进行下载。

我知道 API 平台支持开箱即用的 CSV(还没有尝试过,因为我需要 excel),但是如何强制它返回 StreamedResponse,仍然使用我拥有的所有逻辑,只是进行调整?

我只能想到自定义控制器,但文档中不鼓励这种方式,但没有提供替代方案

似乎没有办法同时使用 StateProvider 和自定义控制器进行相同的 Get 操作(比如说,我想添加一个像 &format=xlsx 这样的 get 参数 smth 并单独处理它)

创建另一个具有不同 URI 的 API 平台模型对我来说似乎太过分了,我想我错过了一些东西

已经通过 API Platform GitHub issues 和 questions 搜索过,没有运气

检查了有关 API Platform 3 自定义资源的 symfonycasts - 也没有看到任何与我的问题相关的内容

api-platform.com
1个回答
0
投票

我认为不需要新的模型。 另一方面,新的特定 API 资源似乎必不可少,例如停用分页。 另一点是,基本 api 返回资源和嵌套资源,但对于 csv,您需要同一行上的数据。 为此,似乎有必要有一个提供程序来映射数据(和关系数据)及其输出格式的 DTO,特别是 SerializedName。

© www.soinside.com 2019 - 2024. All rights reserved.