Excel 文件 (.xlsx
) 上传到 UI5 Fiori 前端。
文件内容通过 XSTRING 格式的 ODATA 到达 SAP ABAP 后端。
我需要将该 XSTRING 存储到内部表中,然后存储到 DDIC 表中。例如:假设Excel有5列,那么我想将这5列的数据存储在DDIC表的相应列中。
我尝试过各种功能模块,例如:
- SCMS_XSTRING_TO_BINARY
- SCMS_BINARY_TO_STRING
以及以下类和方法:
- cl_bcs_convert=>raw_to_string
- cl_soap_xml_helper=>xstring_to_string
但没有人能够将 XSTRING 转换为 STRING。
您能否建议使用哪个功能模块或类/方法来解决该问题?
最佳答案
为了获得最大的舒适度,请使用abap2xlsx .
如果您不能或不想使用它,您也可以自行解析 Excel 文件。 .xlsx 文件基本上是具有不同文件结尾的 .zip 文件。使用 cl_abap_zip->load
打开您收到的 xstring
,并使用 ->get
从 zip 中提取各个文件。然后,使用 cl_ixml
等 XML 解析器或转换来解析文件的 XML 内容。
请注意,Excel 的 XML 是一种复杂的文件格式,由多个文件共同构成工作表。请参阅 Microsoft 的 File format reference for Word, Excel, and PowerPoint了解详情。解释这一点并不简单,因此您通常会对 abap2xlsx 感到更加满意。
关于odata - 从以 XSTRING 形式提供的 XLSX 读取数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61361239/