通过 ALSM_EXCEL_TO_INTERNAL_TABLE上传Excle中资料有个限制就是单个字段的大小最大为50个字符。
所以对于有些备注类的就不行了, 用下面的方式, 就没这个限制了。
*&---------------------------------------------------------------------*
*&
Report
Z_AF_088
*&
*&---------------------------------------------------------------------*
REPORT
z_af_088
LINE-COUNT
10
LINE-SIZE
1000
.
INCLUDE
ole2incl
.
*定义OLE变量
DATA
:excel
TYPE
ole2_object
,
sheet
TYPE
ole2_object
,
cell
TYPE
ole2_object
,
workbook
TYPE
ole2_object
.
DATA
:
BEGIN
OF
itab
OCCURS
0
,
a
(
224
)
,
b
(
224
)
,
c
(
224
)
,
d
(
224
)
,
END
OF
itab
.
DATA
:val1
(
224
)
TYPE
c
.
DATA
:
r1
TYPE
i
,
r2
TYPE
i
.
DATA
:
cnt
TYPE
i
.
*输入文件名参数
PARAMETERS
:fn1
LIKE
rlgrap
-filename
MEMORY
ID
m01
.
START-OF-SELECTION
.
PERFORM
upload_from_pc
USING
fn1
.
DESCRIBE
TABLE
itab
LINES
cnt
.
WRITE
:
cnt
.
LOOP
AT
itab
.
WRITE
:
/
itab
-a
.
WRITE
:
itab
-b
.
WRITE
:
itab
-
c
.
WRITE
:
itab
-d
.
ENDLOOP
.
*&---------------------------------------------------------------------*
*&
Form
UPLOAD_FROM_PC
*&---------------------------------------------------------------------*
FORM
upload_from_pc
USING
p_path
.
FIELD-SYMBOLS
:
.
DATA
:
vf_index
TYPE
i
.
data
:
cnt
type
i
.
*启动excel
CREATE
OBJECT
excel
'EXCEL.APPLICATION'
.
"创建excel对象
CALL
METHOD
OF
excel
'WORKBOOKS'
=
workbook
.
"调用excel的方法
IF
sy
-subrc
NE
0
.
WRITE
:
/
'EXCEL
错误!'
.
LEAVE
PROGRAM
.
ENDIF
.
SET
PROPERTY
OF
excel
'VISIBLE'
=
0
.
"设置读取Excel时,
是否可视
*EXCEL
文件打开
CALL
METHOD
OF
workbook
'OPEN'
EXPORTING
#1
=
p_path
.
IF
sy
-subrc
NE
0
.
WRITE
:
/
'处理错误!'
.
LEAVE
PROGRAM
.
ENDIF
.
*第一页
CALL
METHOD
OF
excel
'WORKSHEETS'
=
sheet
EXPORTING
#1
=
1
.
*读取前10行4列
DO
10
TIMES
.
r1
=
sy
-
index
.
DO
4
TIMES
.
r2
=
sy
-
index
.
MOVE
sy
-
index
TO
vf_index
.
ASSIGN
COMPONENT
vf_index
OF
STRUCTURE
itab
TO
.
CALL
METHOD
OF
"指定单元格,并读取值属性
excel
'CELLS'
=
cell
EXPORTING
#1
=
r1
#2
=
r2
.
GET
PROPERTY
OF
cell
'VALUE'
=
val1
.
"读取excel文件中的内容是用get
property
of
excel
CONDENSE
val1
.
IF
val1
EQ
space
.
cnt
=
cnt
+
1
.
ENDIF
.
MOVE
val1
TO
.
IF
r2
EQ
4
.
IF
cnt
<>
4
.
APPEND
itab
.
CLEAR
itab
.
ENDIF
.
CLEAR
cnt
.
ENDIF
.
ENDDO
.
ENDDO
.
****关闭WORKBOOK
CALL
METHOD
OF
workbook
'CLOSE'
.
****释放对象****
FREE
OBJECT
cell
.
FREE
OBJECT
workbook
.
ENDFORM
.
"
UPLOAD_FROM_PC