在AL11中保存文件并以与用户相同的数字格式下载文件,

2020-08-18 18:43发布

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

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


专家您好,

我正在尝试将文件下载到AL11文件夹,而我可以实现这一目标。 像往常一样,我将一行中的所有列都转换为字符格式,然后将所有这些都串联为单个字符串。 此问题进一步"转移"到了已打开的数据集,并且文件下载正常。 但是下载后,使用CG3Y,我得到的货币格式保持左对齐,现在不再是数字类型。 我无法在此基础上进行直接求和,因为它不再以数字或附加格式表示。 我正在使用以下代码


lv_floattpm =。 "。将估值货币传递给浮点变量。
将ls_gdwn-spotvalue_valuationcurr写入lv_tpmamount。

lv_spotvals_vc = lv_tpmamount。
冷凝lv_spotvals_vc。

此值还用于传输到输出文件数据集。

输出如下。

但是上面的并不是真正的数字格式,将其转换是一团糟。 希望在excelsheets中获得输出格式作为用户中的设置。 如上图所示,它需要很多步骤来调整格式以添加总和等。请您对此提出建议。


此致

ABb

(3.5 kB)

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

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


专家您好,

我正在尝试将文件下载到AL11文件夹,而我可以实现这一目标。 像往常一样,我将一行中的所有列都转换为字符格式,然后将所有这些都串联为单个字符串。 此问题进一步"转移"到了已打开的数据集,并且文件下载正常。 但是下载后,使用CG3Y,我得到的货币格式保持左对齐,现在不再是数字类型。 我无法在此基础上进行直接求和,因为它不再以数字或附加格式表示。 我正在使用以下代码


lv_floattpm =。 "。将估值货币传递给浮点变量。
将ls_gdwn-spotvalue_valuationcurr写入lv_tpmamount。

lv_spotvals_vc = lv_tpmamount。
冷凝lv_spotvals_vc。

此值还用于传输到输出文件数据集。

输出如下。

但是上面的并不是真正的数字格式,将其转换是一团糟。 希望在excelsheets中获得输出格式作为用户中的设置。 如上图所示,它需要很多步骤来调整格式以添加总和等。请您对此提出建议。


此致

ABb

(3.5 kB)
付费偷看设置
发送
11条回答
CPLASF-自律
1楼 · 2020-08-18 19:13.采纳回答

你好

如下解决。

下面提到了我正在考虑的2种不同情况。

对于桌面的GUI_DOWNLOAD选项,代码没有重大更改。 通过使SU01中的用户格式与Windows中的用户格式相同,可以确定生成的excel将具有用户所需的格式。

从下载到AL11的文件中下载Excel时,生成的Excel文件(使用CG3Y到桌面)将不具有带有值字段的列所需的格式。 由于我们在下载到AL11时使用了数据集文件生成选项,因此该文件始终为字符串/字符格式。 因此,在使用值字段的情况下,输出将不会具有数字格式,因此很难转换为数字格式。 标识在将文件串联形成数据集时,所有字段均为字符格式。 无论哪种语言,这都是CSV或制表符分隔值的已知问题。 那只是文本,没有信息是数字。 Excel不能再将它们解释为数字,而是将其打开为文本。 因此,我怀疑核心问题是分隔符与用户的本地首选项不匹配。 我添加了代码以识别并删除分隔符; 这可行。 使用CG3Y将文件从AL11下载到桌面时,在桌面中下载到excel时没有问题。 唯一的问题是关于分隔符的问题,因为我们在代码中将其删除了,所以这些分隔符不可用。 但是求和适用于列。

nice_wp
2楼-- · 2020-08-18 18:56

我不知道您对"第三方工具"赋予什么含义。 abap2xlsx拥有Apache 2.0许可,可以使用,分发,修改等。如果您喜欢低质量的程序,没问题,这是您的选择。

葫芦娃快救爷爷
3楼-- · 2020-08-18 18:58

您需要使用WRITE来转换数字 和货币值。 例如。

这将自动使用用户的小数和千位分隔符设置,并调整诸如HUF的无小数的货币。

有关更多信息,请参见此处。 详细信息: https://help.sap.com/doc/abapdocu_751_index_htm/7.51/zh- 我们/abapwrite_int_options.htm

lukcy2020
4楼-- · 2020-08-18 19:09

我对Abap2xlsx不太了解。 已将其作为第三方插件阅读。 您能否在这方面给我更多指导。

Baoming ROSE
5楼-- · 2020-08-18 18:59

试过了。 这没有帮助; 似乎是不能用于算术运算的方式。

huskylover
6楼-- · 2020-08-18 18:50

最简单的示例:

 DATA  (lo_excel)=新的zcl_excel()。
 DATA(lo_worksheet)= lo_excel-> get_active_worksheet()。
 lo_worksheet-> set_cell(ip_column = 1 ip_row = 1 ip_value = 245)。
 DATA(lo_writer)= CAST zif_excel_writer(NEW zcl_excel_writer_2007())。
 DATA(xstring)= lo_writer-> write_file(lo_excel)。
 "然后创建一个内容为XSTRING的二进制XLSX文件

abap2xlsx提供的很多演示程序。

7楼-- · 2020-08-18 18:55

我使用Excel 365和一个文本文件进行了简单测试。 在美国,因此我们使用逗号(,)表示千位分隔符,使用点号(。)表示小数位。我只是在PC上打开Excel并将TXT文件拖放到其中。

< p>如果我在文本文件中输入这些值,则Excel可以将它们解释为数字没有问题:

10,000.00

1,000.00

这没关系

但是一旦我切换了分隔符(10.000,00),Excel就无法再将它们解释为数字并以文本形式打开它们了。所以我怀疑核心 问题是分隔符与用户的本地首选项不匹配。

一周热门 更多>