读取EXCEL数据到内表并输出
调用函数:
ALSM_EXCEL_TO_INTERNAL_TABLE
*&---------------------------------------------------------------------*
*& Report ZCMH0009
*&
*&---------------------------------------------------------------------*
*& 读取EXCEL 的数据 到内表
*&
*&---------------------------------------------------------------------*
REPORT
ZCMH0009
.
INCLUDE
OLE2INCL
.
"定义OLE变量
DATA
:
BEGIN
OF
IEXCEL
OCCURS
0
.
INCLUDE
STRUCTURE
ALSMEX_TABLINE
.
DATA
:
END
OF
IEXCEL
.
DATA
:
XLS
LIKE
RLGRAP
-
FILENAME
VALUE
'C:\sap_usr02.xls'
.
CALL
FUNCTION
'ALSM_EXCEL_TO_INTERNAL_TABLE'
EXPORTING
FILENAME
=
XLS
I_BEGIN_COL
=
1
I_BEGIN_ROW
=
1
I_END_COL
=
100
" 读取多少列
I_END_ROW
=
100
"读取多少行
TABLES
INTERN
=
IEXCEL
EXCEPTIONS
INCONSISTENT_PARAMETERS
=
1
UPLOAD_OLE
=
2
OTHERS
=
3
.
"读取后内表保存的结构为:第一行记录第一个单元的行值 列值 单元格内容 比如 0001 0001 第一个单元格内容
WRITE
:
/
.
IF
sy
-
subrc <>
0
.
WRITE
:
/ XLS
,
'读入错误!'
.
ELSE
.
LOOP
AT
IEXCEL
.
WRITE
IEXCEL
-
VALUE
(
20
)
.
"取前20个字符
AT
END
OF
ROW
.
"每行行尾输出空行
WRITE
:
/
.
ENDAT
.
ENDLOOP
.
ENDIF
.
ABAP
读取
Excel
文件可以使用多种方式实现,OLE是最常用的技术,但速度及兼容性较差;也可以使用DOI接口
读取
,最新的技术则通过XML技术进行解析,采用最新的面向对象编程,容易理解,且兼容性较好。
SAP
提供了标准的
读取
EXCEL
的函数(ALSM_
EXCEL
_TO_INTERNAL_TABLE),但是此标准函数无法满足对同一
EXCEL
进行不同SHEET的
数据
读取
,一下方法就是教你如何通过修改程序来实现ALSM_
EXCEL
_TO_INTERNAL_TABLE
读取
多个SHEET;
直接复制粘贴激活直接用-几乎可以实现任意扁平结构的
Excel
转到
内表
.
首先,需要你在SE11中创建一个和你
Excel
中的字段相同的结构,然后把这个结构名字以字符串的形式传给方法.
使用标准类 CL_FDT_XL_SPREADSHEET,
读取
xlsx格式文件流
数据
,该类在note。2468709 – 标准类 CL_FDT_XL_SPREADSHEET 的使用 中说明不建议常规使用,可能有问题。使用
ABAP
2XLSX中的类zcl_
excel
_reader_2007。适用于通过接口传输的exce文件
数据
读取
。
读取
数据
,需要在系统中安装。