0

在阅读 Excel 表时,我需要显示所有列值,即使它们是空的。

但是,除非最后一个单元格有值,否则骡子不会考虑空单元格。

我的要求是我需要映射所有列值,即使它们是空的。

Dateweave 脚本如下所示:

%dw 2.0
var myInput = readUrl("classpath://Book1.xlsx", "application/xlsx")
output application/json
---
myInput.'Sheet1' map ($ mapObject {
    "$$" : $
})

HTTP 侦听器设置为:

<http:listener doc:name="Listener" doc:id="ed1c0abb-8f7a-4856-b305-d0a249a07c96" config-ref="HTTP_Listener_config" path="/test" outputMimeType="application/xlsx; tableoffset=A2; ignoreemptyline=false; header=true"/>

下面的图片可能会更好地展示:

在此处输入图像描述

4

1 回答 1

1

如果可能,我将尝试仅使用 CSV 文件。如果您别无选择,请尝试一下,其余代码应该与您的代码段中的一样:

var blank = myInput.'Sheet1' reduce (
    (e, acc=[]) -> acc ++ (e pluck $$)
) 
distinctBy $
reduce (
    (e, acc={}) -> acc ++ {(e): ""}
)
import mergeWith from dw::core::Objects
---
myInput.'Sheet1' map (
    blank mergeWith $
)

出于某种原因,我可能无法在最新版本的工作室中读取和解析 xlsx(由于错误),这就是我使用的,但上面的代码片段应该适合你。我希望它有所帮助。

于 2020-01-15T14:28:59.687 回答