点击此处---> 群内免费提供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注释吗?
谢谢,
沙特。
你好
在将值输入内部表并准备下载数据之前,您能否负担得起用Description字段中不存在的任何特定字符串替换这样的字符串? 这将解决下载中的问题。 这不是一个理想的解决方案(很远的地方:)),但不会弄乱表结构。
此致
伊戈尔
嗨亚瑟,
可能是-但是,如果您将ALV导出到包含类似于我上面提供的数据的电子表格,则在标准情况下效果很好。
首先,您需要了解如何 CSV(以及制表符分隔)文件有效。 有一些规则需要遵循。
例如这是一个不错的博客。
TLDR:其中一项规则是,如果值(列)包含定界符(双引号),则需要使用转义符 另一个定界符。 另外,如果值包含定界符,CRLF或分隔符,则需要将它们包装在定界符之间。
示例:
之前:Hello2" Random
AFTER:" Hello2"" 随机"
您不需要自己编写这些" CSV规则"。已经有解决方案(方法,功能...)。请检查链接的博客或搜索。
# p#您到底是什么意思是ALV导出?如果例如ALV内置(SAP标准)到XLSX导出,那么是的,当然XLSX与CSV(和制表符分隔)格式的Excel格式完全不同。
如果您正在回答某人,请使用注释。这似乎是您在回答自己(您的原始问题)。
嗨,托马斯,
感谢您的回复和分享博客!
从您的帖子中,我了解到所有分隔符都必须使用另一个分隔符进行转义。
但是,有趣的是,对于透明表中维护并导出到excel电子表格的数据,还没有这样做。 当我们导出ALV表时,它工作得很好!
一周热门 更多>