提问人:user6927606 提问时间:11/11/2023 更新时间:11/12/2023 访问量:35
Groovy 脚本将 XML 数据写入 xls(Excel)
Groovy script to write XML data to xls(Excel)
问:
我有一个XML结构,如下所示。如何编写一个时髦的脚本来将XML数据写入xls(Excel)?有人可以帮我吗?
<Record>
<Action>create</Action>
<ID KEMASAN>DUS, 1 BOTOL PLASTIK @ 28 TABLET</ID KEMASAN>
<Barcode>(01)00372626270113(21)200000022671(17)(10)ICS_DECOM</Barcode>
<Barcode>(01)00372626270113(21)200000022670(17)(10)ICS_DECOM</Barcode>
<Barcode>(01)00372626270113(21)200000000052(17)(10)ICS_DECOM</Barcode>
<NIE>DKI1844200317A1</NIE>
<LOT NO>ICS_DECOM</LOT NO>
<Exp Date>31/12/2024</Exp Date>
<Batch No>ICS_DECOM</Batch No>
<GTIN>00372626270113</GTIN>
<IS_ACTIVE>TRUE</IS_ACTIVE>
<IS_SAMPLE>FALSE</IS_SAMPLE>
<IS_REJECT>FALSE</IS_REJECT>
<MFG DATE>01/01/2023</MFG DATE>
<Case SGTIN>urn:epc:id:sgtin:0372626.527011.200000000052</Case SGTIN>
<Pallet SGTIN>urn:epc:id:sscc:0361958.0001046962</Pallet SGTIN>
</Record>
答:
0赞
chubbsondubs
11/12/2023
#1
为此,我建议使用spreadsheet.dsl.builders。您的 XML 无效,因为它包含标记名称的空格(即 、 等),因此我在空格所在的位置添加了一个下划线,并且能够运行以下内容:<ID KEMASAN>
<Batch No>
@Grab('builders.dsl:spreadsheet-builder-poi:3.0.1')
@Grab('builders.dsl:spreadsheet-builder-groovy:3.0.1')
import builders.dsl.spreadsheet.builder.poi.PoiSpreadsheetBuilder
def xml = new XmlSlurper().parseText('''
<root>
<Record>
<Action>create</Action>
<ID_KEMASAN>DUS, 1 BOTOL PLASTIK @ 28 TABLET</ID_KEMASAN>
<Barcode>(01)00372626270113(21)200000022671(17)(10)ICS_DECOM</Barcode>
<Barcode>(01)00372626270113(21)200000022670(17)(10)ICS_DECOM</Barcode>
<Barcode>(01)00372626270113(21)200000000052(17)(10)ICS_DECOM</Barcode>
<NIE>DKI1844200317A1</NIE>
<LOT_NO>ICS_DECOM</LOT_NO>
<Exp_Date>31/12/2024</Exp_Date>
<Batch_No>ICS_DECOM</Batch_No>
<GTIN>00372626270113</GTIN>
<IS_ACTIVE>TRUE</IS_ACTIVE>
<IS_SAMPLE>FALSE</IS_SAMPLE>
<IS_REJECT>FALSE</IS_REJECT>
<MFG_DATE>01/01/2023</MFG_DATE>
<Case_SGTIN>urn:epc:id:sgtin:0372626.527011.200000000052</Case_SGTIN>
<Pallet_SGTIN>urn:epc:id:sscc:0361958.0001046962</Pallet_SGTIN>
</Record>
</root>
''')
File output = new File("spreadsheet.xlsx")
PoiSpreadsheetBuilder.create(output).build {
sheet("My Sheet") {
xml.Record.each { r ->
row {
cell "Action"
cell "ID"
cell "Batch Number"
cell "NIE"
}
row {
cell r.Action.text()
cell r.ID_KEMASAN.text()
cell r.Batch_No.text()
cell r.NIE.text()
}
}
}
}
println("Done! ${output.absolutePath}")
评论