存在双引号时,ABAP导出到Excel结果的行较少

2020-08-30 05:47发布

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

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


你好,

我有一个内部表,该表包含多个列,其中之一是"说明"。 在此char列中,我提供了随机文本。 但是,只要有一个双引号实例,内部表中的行就会移到导出的excel的单个单元格中,直到找到下一个双引号为止。

这是一个例子

Column1 Column2 ColumnDescription

ABC 123你好"随机"

DEF 456 TestRandom

GHI 789 LorumIpsum

JKL 123 Hello2" Random

MNO 456 HelloTest

在这种情况下,第1至第4行将合并到导出的excel中的单个单元格中; 因此,导出的Excel将只有2行而不是5行。

在代码中,我将所有列移动到由水平制表符分隔的字符串。 然后,我使用SCMS_STRING_TO_XSTRING将字符串转换为xstring。 发布后,我叫cl_wd_runtime_services => attach_file_to_response。

我碰到一个老帖子,非常清楚地描述了我的问题; 但是,没有提供解决方案。

https://answers.sap。 com/questions/804934/double-quotes-when-downloading-to-excel.html

有任何建议/SAP注释吗?

谢谢,
沙特。

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

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


你好,

我有一个内部表,该表包含多个列,其中之一是"说明"。 在此char列中,我提供了随机文本。 但是,只要有一个双引号实例,内部表中的行就会移到导出的excel的单个单元格中,直到找到下一个双引号为止。

这是一个例子

Column1 Column2 ColumnDescription

ABC 123你好"随机"

DEF 456 TestRandom

GHI 789 LorumIpsum

JKL 123 Hello2" Random

MNO 456 HelloTest

在这种情况下,第1至第4行将合并到导出的excel中的单个单元格中; 因此,导出的Excel将只有2行而不是5行。

在代码中,我将所有列移动到由水平制表符分隔的字符串。 然后,我使用SCMS_STRING_TO_XSTRING将字符串转换为xstring。 发布后,我叫cl_wd_runtime_services => attach_file_to_response。

我碰到一个老帖子,非常清楚地描述了我的问题; 但是,没有提供解决方案。

https://answers.sap。 com/questions/804934/double-quotes-when-downloading-to-excel.html

有任何建议/SAP注释吗?

谢谢,
沙特。

付费偷看设置
发送
4条回答
南山jay
1楼-- · 2020-08-30 06:09

你好

在将值输入内部表并准备下载数据之前,您能否负担得起用Description字段中不存在的任何特定字符串替换这样的字符串? 这将解决下载中的问题。 这不是一个理想的解决方案(很远的地方:)),但不会弄乱表结构。

此致

伊戈尔

四川大学会员
2楼-- · 2020-08-30 05:54

嗨亚瑟,

可能是-但是,如果您将ALV导出到包含类似于我上面提供的数据的电子表格,则在标准情况下效果很好。

空代码
3楼-- · 2020-08-30 06:13

首先,您需要了解如何 CSV(以及制表符分隔)文件有效。 有一些规则需要遵循。

例如这是一个不错的博客

TLDR:其中一项规则是,如果值(列)包含定界符(双引号),则需要使用转义符 另一个定界符。 另外,如果值包含定界符,CRLF或分隔符,则需要将它们包装在定界符之间。

示例:
之前:Hello2" Random

AFTER:" Hello2"" 随机"

您不需要自己编写这些" CSV规则"。已经有解决方案(方法,功能...)。请检查链接的博客或搜索。

# p#

您到底是什么意思是ALV导出?如果例如ALV内置(SAP标准)到XLSX导出,那么是的,当然XLSX与CSV(和制表符分隔)格式的Excel格式完全不同。

如果您正在回答某人,请使用注释。这似乎是您在回答自己(您的原始问题)。

葫芦娃快救爷爷
4楼-- · 2020-08-30 06:01

嗨,托马斯,

感谢您的回复和分享博客!

从您的帖子中,我了解到所有分隔符都必须使用另一个分隔符进行转义。

但是,有趣的是,对于透明表中维护并导出到excel电子表格的数据,还没有这样做。 当我们导出ALV表时,它工作得很好!

一周热门 更多>