【问题标题】:Converting Excel to JSON using Dataweave in anypoint studio在 Anypoint Studio 中使用 Dataweave 将 Excel 转换为 JSON
【发布时间】:2020-10-14 19:48:33
【问题描述】:

需要在 Anypoint Studio 中使用 Dataweave 将 Excel 转换为 JSON。

Mule Datamapper 支持直接将 Excel 文件转换为 JSON,而在 DataWeave 中它不支持 Excel 到 JSON 的转换。

在一篇博客中,我发现使用 POI 库我们可以做到这一点,但它有点复杂。

有没有其他方法可以做到这一点?

【问题讨论】:

    标签: mule


    【解决方案1】:

    DataWeave(数据转换处理器)的 Excel(XLSX 文件)支持已随带有 3.8.2 运行时的新 Anypoint Studio 6.1.2 版本一起发布。

    请在此处查看如何使用它:Excel format in DataWeave

    以及下面的发行说明:
    https://docs.mulesoft.com/release-notes/anypoint-studio-6.1-with-3.8.2-runtime-update-site-2-release-notes

    【讨论】:

    • 我不知道为什么这被否决了。 @fermelon 是正确的
    • 使用 DataWeave 无需任何 POI 代码即可完美运行!感谢@Sahal 在评论中指出它,否则我会使用 POI 来实现它......节省了我一些时间。
    【解决方案2】:

    我认为 3.7 中没有任何 Excel 转换器,除非您想使用已弃用的 DataMapper。是的,有些工作,但您可以使用 Apache POI,如下所示 -

    1. 使用 Java Transformer 将 Excl 转换为 CSV - 我找到了这个 apache 示例泛型类 here
    2. 现在,获得 CSV 后,将其发送到 DataWeave 并进行 CSV 到 JSON 的转换。

    【讨论】:

    • 我们不能使用 POI 库直接使用 Java Transformer 将 Excel 转换为 JSON 吗?
    • POI 不支持读取/写入 JSON。您可以使用 POI 读取 Excel,然后您需要使用 Jackson、GSON 等其他库将其转换为 JSON 格式。如果您在 java 转换器中编写您的 json 转换,那么该转换器可能变得过于特定于仅转换。我建议只创建一个 java 转换器来将 excel 转换为 csv(然后它可以重复使用)。获得 CSV 后,使用 DataWeave 将其转换为所需的 JSON 格式。编写 DataWeave 代码比编​​写自定义 Jackson/GSON 代码容易,IMO。
    猜你喜欢
    • 2022-01-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-02-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-04-19
    相关资源
    最近更新 更多