将多个工作表 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 上传到内部表中的主要内容,如果未能解决你的问题,请参考以下文章