如何使用Java映射从SAP PI/PO中的传入xml使用csv值创建.xls/.xlsx文件

2020-09-06 06:30发布

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


大家好,

我正在尝试使用SAP PO 7.5中的Java映射创建.xls/.xlsx文件,文件中的值之间用分号分隔。

我已将输入xml和输出文件的屏幕截图作为参考。

capture.jpg

我正在使用DOM解析器来解析输入xml,如下所示,然后在excel的各个单元格中设置值。

DocumentBuilderFactory工厂= DocumentBuilderFactory.newInstance(); DocumentBuilder builder = factory.newDocumentBuilder();

文档document = builder.parse(inputstream); NodeList nodelist = document.getElementsByTagName(" ExchangeRate");

请让我知道如何添加; 在从xml获取的不同值之间。

HSSFRow row1 = ITSFX.createRow(1);

cell = row1.createCell((short)0);

cell.setCellValue((((Element)(nodelist.item(0)))。getElementsByTagName(" CurrencyFrom")。item(0)。getFirstChild().getNodeValue());

在这种情况下,我从xml中获取了第一个值,即EUR。

现在,我必须在同一单元格[1,0]中以半冒号作为分隔符,将xml中的第二个值相加。

capture.jpg (59.2 kB)

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


大家好,

我正在尝试使用SAP PO 7.5中的Java映射创建.xls/.xlsx文件,文件中的值之间用分号分隔。

我已将输入xml和输出文件的屏幕截图作为参考。

capture.jpg

我正在使用DOM解析器来解析输入xml,如下所示,然后在excel的各个单元格中设置值。

DocumentBuilderFactory工厂= DocumentBuilderFactory.newInstance(); DocumentBuilder builder = factory.newDocumentBuilder();

文档document = builder.parse(inputstream); NodeList nodelist = document.getElementsByTagName(" ExchangeRate");

请让我知道如何添加; 在从xml获取的不同值之间。

HSSFRow row1 = ITSFX.createRow(1);

cell = row1.createCell((short)0);

cell.setCellValue((((Element)(nodelist.item(0)))。getElementsByTagName(" CurrencyFrom")。item(0)。getFirstChild().getNodeValue());

在这种情况下,我从xml中获取了第一个值,即EUR。

现在,我必须在同一单元格[1,0]中以半冒号作为分隔符,将xml中的第二个值相加。

capture.jpg (59.2 kB)
付费偷看设置
发送
2条回答
奄奄一息的小鱼
1楼-- · 2020-09-06 07:04

你好,拉贾特,

关于此文件(.xml)到文件(.xls)的情况,如果有任何动态文件命名方案,请设置ASMA。

公共字符串ASMAFileName(字符串DOCNUM,字符串CREDAT,字符串CRETIM,容器容器)抛出StreamTransformationException {

String filename = new String("");

DynamicConfiguration conf1 =(DynamicConfiguration)container.getTransformationParameters()。get(StreamTransformationConstants.DYNAMIC_CONFIGURATION); DynamicConfigurationKey key1 = DynamicConfigurationKey.create(" http://sap.com/xi/XI/系统","文件名"); 文件名="货币" +" _" + DOCNUM +" _" + CREDAT +" _" + CRETIM +" .xls";

conf1.put(key1,filename);

返回文件名;

然后在集成目录中

模块配置如下:

感谢与问候-Rajesh PS

大道至简
2楼-- · 2020-09-06 07:09

嗨Rajesh,

非常感谢您的回答,但我所需要的只是更改不同列(即列B)中的最后一个值5911和405。

一周热门 更多>