odata - 从以 XSTRING 形式提供的 XLSX 读取数据

标签 odata abap class-method function-module

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/

相关文章:

oData - 将过滤器应用于 SQL 查询

.net - 来自 OData 源的多对多查询

objective-c - 命名方法的简单规则,兼容ARC命名约定

python - 类方法的目的是什么?

azure - TableController 和 Odata 查询

asp.net-core - AspNETCore Odata 批处理

sql - ABAP 在程序退出时执行某些操作

error-handling - 通过 ABAP 删除 BOPF 消息(来自/bobf/if_frw_message)

abap - 用于远程调用事务的 RFC

typescript - 在扩展类中覆盖具有不同参数类型的方法 - Typescript