0
点赞
收藏
分享

微信扫一扫

ABAP中读取EXCEL中不同的SHEET数据

三次方 2022-10-17 阅读 194

货铺QQ群号:834508274

进群统一修改群名片,例如BJ_ABAP_森林木。群内禁止发广告及其他一切无关链接,小程序等,进群看公告,谢谢配合
不修改昵称会被不定期踢除,谢谢配合

下面开始干货:


有时候因为各种原因吧,需要读取多个sheet页数据,

 

如果需要读多个sheet页,可以参考下面的自建fm

FUNCTION ZALSM_EXCEL_TO_INTERNAL_TABLE .
*"----------------------------------------------------------------------
*"*"Local interface:
*" IMPORTING
*" VALUE(FILENAME) LIKE RLGRAP-FILENAME
*" VALUE(I_BEGIN_COL) TYPE I
*" VALUE(I_BEGIN_ROW) TYPE I
*" VALUE(I_END_COL) TYPE I
*" VALUE(I_END_ROW) TYPE I
*" VALUE(IV_SHEET_NAME) TYPE ALSMEX_TABLINE-VALUE OPTIONAL
*" TABLES
*" INTERN STRUCTURE ALSMEX_TABLINE
*" EXCEPTIONS
*" INCONSISTENT_PARAMETERS
*" UPLOAD_OLE
*"----------------------------------------------------------------------
DATA: excel_tab TYPE ty_t_sender.
DATA: ld_separator TYPE c.
DATA: application TYPE ole2_object,
workbook TYPE ole2_object,
range TYPE ole2_object,
worksheet TYPE ole2_object.
DATA: h_cell TYPE ole2_object,
h_cell1 TYPE ole2_object.

ld_rc
* Rückgabewert der Methode "clipboard_export
* Makro für Fehlerbehandlung der Methods









* check parameters


* Get TAB-sign for separation of fields


* open file in Excel




CALL METHOD OF application 'Workbooks' = workbook.

CALL METHOD OF workbook 'Open' EXPORTING #1 = filename.

*-----delete by jinj
** set property of application 'Visible' = 1.
** m_message.
* GET PROPERTY OF application 'ACTIVESHEET' = worksheet.
* m_message.
*-----end delete
*--ADD JINJ-----------------------------------------------
** set property of application 'Visible' = 1.
** m_message.

get property of APPLICATION 'ACTIVESHEET' = WORKSHEET.


*-->可以实现读取多个sheet






*---END OF------------------------------------------------
* mark whole spread sheet






CALL METHOD OF worksheet 'RANGE' = range
EXPORTING #1 = h_cell #2 = h_cell1.



* copy marked area (whole spread sheet) into Clippboard


* read clipboard into ABAP


data

cntl_error
* ERROR_NO_GUI
* NOT_SUPPORTED_BY_GUI = 3
OTHERS


MESSAGE a037(alsmex).


USING ld_separator.
* clear clipboard


IMPORTING
data
CHANGING
rc
EXCEPTIONS
cntl_error
* ERROR_NO_GUI
*
OTHERS

* quit Excel and free ABAP Object - unfortunately, this does not kill
* the Excel process



* to kill the Excel process it's necessary to free all used objects
FREE OBJECT h_cell.
FREE OBJECT h_cell1. m_message.
FREE OBJECT range. m_message.
FREE OBJECT worksheet. m_message.
FREE OBJECT workbook.
FREE OBJECT application. m_message.

ENDFUNCTION.

举报

相关推荐

0 条评论