Java 将xml映射到Jasper报告工具

Java 将xml映射到Jasper报告工具,java,xml,excel,jasper-reports,Java,Xml,Excel,Jasper Reports,我有一个XML文件要转换成EXCEL(XLS)。考虑使用Jasper报告工具将其转换为XLS。在教程中说,我们需要从XML创建一个JRXML模板,然后编译JRXML以生成一个.jasper文件。我想知道如何将xml映射到jrxml。请帮助我从XML创建JRXML文件 我的示例xml是 <?xml version="1.0" encoding="UTF-8" standalone="yes"?> <mig:menu-compare xmlns:mig="http://www..c

我有一个XML文件要转换成EXCEL(XLS)。考虑使用Jasper报告工具将其转换为XLS。在教程中说,我们需要从XML创建一个JRXML模板,然后编译JRXML以生成一个.jasper文件。我想知道如何将xml映射到jrxml。请帮助我从XML创建JRXML文件

我的示例xml是

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<mig:menu-compare xmlns:mig="http://www..com//" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www..com/">
    <mig:menu-info>
        <mig:menu type="ons" name="HCOTA"/>
        <mig:menu type="ux" name="RTACOF"/>
    </mig:menu-info>
    <mig:field-details>
        <mig:fields existence="both">
            <mig:field name="taChrgOffMsg.taChrgOffCrit.Acct.foracid">
                <mig:field-type type="ons">
                    <mig:group-name>cota</mig:group-name>
                    <mig:page-name>cotacrit</mig:page-name>
                    <mig:control-type>Text Field</mig:control-type>
                    <mig:ui-field>acctId</mig:ui-field>
                    <mig:label>FLT000265</mig:label>
                    <mig:label-desc>A/c. ID</mig:label-desc>
                    <mig:mandatory>Y</mig:mandatory>
                </mig:field-type>
                <mig:field-type type="ux">
                    <mig:group-name>Rtacof</mig:group-name>
                    <mig:page-name>Rtacof_criteria_form</mig:page-name>
                    <mig:page-name-desc>Transaction A/c. Details</mig:page-name-desc>
                    <mig:control-type>FinAccountId</mig:control-type>
                    <mig:ui-field>acctId$accountId</mig:ui-field>
                    <mig:label>FLT001251</mig:label>
                    <mig:label-desc>A/c. ID</mig:label-desc>
                    <mig:mandatory>Y</mig:mandatory>
                    <mig:section-structure>group1.section1.subSection1.finRow1.finCell1</mig:section-structure>
                    <mig:form>criteria</mig:form>
                </mig:field-type>
            </mig:field>
            <mig:field name="taChrgOffMsg.taChrgOffCrit.chargeOffType">
                <mig:field-type type="ons">
                    <mig:group-name>cota</mig:group-name>
                    <mig:page-name>cotacrit</mig:page-name>
                    <mig:control-type>Radio Button</mig:control-type>
                    <mig:ui-field>chargeOffMode</mig:ui-field>
                    <mig:label>FLT004530</mig:label>
                    <mig:label-desc>Charge Off Mode</mig:label-desc>
                    <mig:mandatory>cotaProps.chargeOffMode_MANDATORY</mig:mandatory>
                </mig:field-type>
                <mig:field-type type="ux">
                    <mig:group-name>Rtacof</mig:group-name>
                    <mig:page-name>Rtacof_criteria_form</mig:page-name>
                    <mig:page-name-desc>Transaction A/c. Details</mig:page-name-desc>
                    <mig:control-type>FinRadioButtonGroup</mig:control-type>
                    <mig:ui-field>chargeMode</mig:ui-field>
                    <mig:label>FLT003817</mig:label>
                    <mig:label-desc>Charge Off Mode</mig:label-desc>
                    <mig:mandatory>N</mig:mandatory>
                    <mig:section-structure>group1.section1.subSection12.finRow2.finCell4</mig:section-structure>
                    <mig:form>criteria</mig:form>
                </mig:field-type>
            </mig:field>
        </mig:fields>
        <mig:fields existence="nonMap">
            <mig:field>
                <mig:field-type type="ons">
                    <mig:group-name>cota</mig:group-name>
                    <mig:page-name>cotacrit</mig:page-name>
                    <mig:control-type>Desc. Label</mig:control-type>
                    <mig:ui-field>acctCrncy</mig:ui-field>
                    <mig:label></mig:label>
                    <mig:mandatory>N</mig:mandatory>
                </mig:field-type>
            </mig:field>
            <mig:field>
                <mig:field-type type="ons">
                    <mig:group-name>cota</mig:group-name>
                    <mig:page-name>cotacrit</mig:page-name>
                    <mig:control-type>Desc. Label</mig:control-type>
                    <mig:ui-field>acctSol</mig:ui-field>
                    <mig:label></mig:label>
                    <mig:mandatory>N</mig:mandatory>
                </mig:field-type>
            </mig:field>
            <mig:field>
                <mig:field-type type="ux">
                    <mig:group-name>Rtacof</mig:group-name>
                    <mig:page-name>Rtacof_tranDetail_form</mig:page-name>
                    <mig:page-name-desc>Charge Off Transaction Details</mig:page-name-desc>
                    <mig:control-type>FinText</mig:control-type>
                    <mig:ui-field>dtotalCollVa</mig:ui-field>
                    <mig:label>FLT003816</mig:label>
                    <mig:label-desc>Total Collateral Value</mig:label-desc>
                    <mig:section-structure>tranDetailG1.tranDetailS1.sg_accDet.finRow32.finCell103</mig:section-structure>
                    <mig:form>tranDetail</mig:form>
                </mig:field-type>
            </mig:field>
            <mig:field>
                <mig:field-type type="ux">
                    <mig:group-name>Rtacof</mig:group-name>
                    <mig:page-name>Rtacof_tranDetail_form</mig:page-name>
                    <mig:page-name-desc>Charge Off Transaction Details</mig:page-name-desc>
                    <mig:control-type>FinText</mig:control-type>
                    <mig:ui-field>dassetClassM</mig:ui-field>
                    <mig:label>FLT003810</mig:label>
                    <mig:label-desc>Main/Sub Asset Classification</mig:label-desc>
                    <mig:section-structure>tranDetailG1.tranDetailS1.sg_accDet.finRow32.finCell93</mig:section-structure>
                    <mig:form>tranDetail</mig:form>
                </mig:field-type>
            </mig:field>
        </mig:fields>
        <mig:fields existence="ux">
            <mig:field name="taChrgOffMsg.taChrgOffCrit.Acct.acctName">
                <mig:field-type type="ux">
                    <mig:group-name>Rtacof</mig:group-name>
                    <mig:page-name>Rtacof_criteria_form</mig:page-name>
                    <mig:page-name-desc>Transaction A/c. Details</mig:page-name-desc>
                    <mig:control-type>FinAccountId</mig:control-type>
                    <mig:ui-field>acctId$accountNameDesc</mig:ui-field>
                    <mig:label>FLT001251</mig:label>
                    <mig:label-desc>A/c. ID</mig:label-desc>
                    <mig:mandatory>Y</mig:mandatory>
                    <mig:section-structure>group1.section1.subSection1.finRow1.finCell1</mig:section-structure>
                    <mig:form>criteria</mig:form>
                </mig:field-type>
            </mig:field>
        </mig:fields>
        <mig:fields existence="ons">
            <mig:field name="taChrgOffMsg.taChrgOffCrit.funcCode">
                <mig:field-type type="ons">
                    <mig:group-name>cota</mig:group-name>
                    <mig:page-name>cotacrit</mig:page-name>
                    <mig:control-type>Combo Box</mig:control-type>
                    <mig:ui-field>funcCode</mig:ui-field>
                    <mig:label>FLT000204</mig:label>
                    <mig:label-desc>Function</mig:label-desc>
                    <mig:mandatory>Y</mig:mandatory>
                </mig:field-type>
            </mig:field>
        </mig:fields>
    </mig:field-details>
</mig:menu-compare>

科塔
科塔克利特
文本字段
阿克蒂德
FLT000265
A/c。身份证件
Y
塔科夫
Rtacof标准表格
往来账款。细节
财务会计
acctId$accountId
FLT001251
A/c。身份证件
Y
group1.section1.subSection1.finRow1.finCell1
标准
科塔
科塔克利特
单选按钮
充电模式
FLT004530
冲销模式
cotaProps.CHARGEOFF模式\u强制
塔科夫
Rtacof标准表格
往来账款。细节
FinRadioButtonGroup
充电模式
FLT003817
冲销模式
N
组1.section1.subSection12.finRow2.finCell4
标准
科塔
科塔克利特
描述标签
意外
N
科塔
科塔克利特
描述标签
阿克索
N
塔科夫
Rtacof_tranDetail_表格
冲销交易明细
FinText
德托塔尔科娃
FLT003816
抵押品总价值
tranDetailG1.tranDetailS1.sg_accDet.finRow32.finCell103
tranDetail
塔科夫
Rtacof_tranDetail_表格
冲销交易明细
FinText
达斯特克拉斯
FLT003810
主要/子资产分类
tranDetailG1.tranDetailS1.sg_accDet.finRow32.finCell93
tranDetail
塔科夫
Rtacof标准表格
往来账款。细节
财务会计
acctId$ACCOUNTNAME描述
FLT001251
A/c。身份证件
Y
group1.section1.subSection1.finRow1.finCell1
标准
科塔
科塔克利特
组合框
功能码
FLT000204
作用
Y

遵循以下步骤:

步骤1:为excel文件中所需的输出设计jrxml文件

步骤2:您需要一个数据源来填充jrxml文件。在您的情况下,您需要JasperReport的XmlDataSource。因此,从xml文件创建一个XmlDataSource


步骤3:使用JasperExporter填写报告并将其导出到excel文件。

我创建了一个Java对象,通过它我可以解析XML,但是如何使用它设计JRXML?您必须创建一个JRXML文件,其中包含文本字段和其他元素。它基本上是一个Xml文件。通过下面的链接,你的图片就会清晰了。谢谢你,事实上我已经安装了JasperStudio来设计报告。我可以使用什么XPath查询将type='ons'字段作为一列获取,将type='ux'作为另一列获取,该列在内部将被拆分为多个列?现在我使用的是查询-/mig:menu compare/mig:field details/mig:fields。并创建了两个数据集来获取“mig:existence”和“mig:name”,但无法同时映射它们。我已经使用了“Lists”元素。好的,我想您是在询问将填充您的报告的查询。只需一个简单的select*就可以了,但请确保您有一个查询,该查询将返回一个包含您的字段(即“ons”和“ux”)的结果集。