将多个工作表 Excel 上传到内部表中

Posted

技术标签:

【中文标题】将多个工作表 Excel 上传到内部表中【英文标题】:Upload multiple sheet Excel into internal table 【发布时间】:2019-02-09 10:01:14 【问题描述】:

我有 Excel 文件并且有多个工作表(多个工作表),因此我需要上传此工作表中的所有数据。此函数 'TEXT_CONVERT_XLS_TO_SAP' 不适用,因为只上传活动工作表中的数据(仅一个工作表)。

【问题讨论】:

【参考方案1】:

你能把所有数据放在一张纸上吗?

您总是可以制作一个宏左右,并将工作表中的所有数据合并为一个,然后使用您评论的 TEXT_CONVERT_XLS_TO_SAP。

祝你好运

【讨论】:

不,我不能将所有数据放在一张表中 - 条件是工作表将是 14 块!【参考方案2】:

我找到了这些。通常它的工作方式是您提供到目前为止您尝试过的代码以及出现问题的地方。寻求解决方案不是您在这里得到的,而是来自谷歌:

    https://archive.sap.com/discussions/thread/594226 --> 报告中的示例编码 https://archive.sap.com/discussions/thread/3191410 --> 他们甚至提供了样本报告

【讨论】:

(1) 基于 OLE 的示例(仅限前端)(2) 基于类“桌面办公集成”的示例(基于 OLE 的技术+ 在 SAP GUI 上有一些东西可以“加速” OLE - 仅限前端 - 请注意 TEXT_CONVERT_XLS_TO_SAP 也使用 DOI,但 SAP 只是将其功能限制在一个工作表中)【参考方案3】:
data: l_t_data   type w3mimetabtype,
      l_t_files  type filetable,
      l_rc       type i.

cl_gui_frontend_services=>file_open_dialog(
  exporting
    file_filter = '*.xlsx'
    default_filename = '*.xlsx'
  changing
    file_table = l_t_files
    rc = l_rc
).
check l_t_files[] is not initial.

cl_gui_frontend_services=>gui_upload(
  exporting
    filename = conv string( l_t_files[ 1 ]-filename )
    filetype = 'BIN'
  importing
    filelength = data(l_length)
  changing
    data_tab = l_t_data
).

try.
   data(l_r_xls) = new cl_fdt_xl_spreadsheet(
     document_name = conv string( l_t_files[ 1 ]-filename )
     xdocument = cl_fxs_converter=>w3mimetab_to_xstring( iv_w3mimetab = l_t_data iv_length = l_length )
   ).
catch cx_fdt_excel_core.
  assert 1 = 2.
endtry.

l_r_xls->if_fdt_doc_spreadsheet~get_worksheet_names( importing worksheet_names = data(l_t_worksheets) ).

【讨论】:

以上是关于将多个工作表 Excel 上传到内部表中的主要内容,如果未能解决你的问题,请参考以下文章

将多个工作表 Excel 上传到内部表中

Excel 怎样知道一个工作簿中工作表的个数?

将多个工作表导入到 R 中的多个数据框中

将列表框中选定的 Excel 工作表保存为新的工作簿/Excel 文件

如何将EXCEl中多张Sheet工作表转换成一个PDF

excel 如何从一个工作表提取出所有我要的数据到另一个工作表