Chinaunix首页 | 论坛 | 博客
  • 博客访问: 7202403
  • 博文数量: 655
  • 博客积分: 10264
  • 博客等级: 上将
  • 技术积分: 8278
  • 用 户 组: 普通用户
  • 注册时间: 2007-06-04 17:47
个人简介

ABAP顾问

文章分类

全部博文(655)

文章存档

2017年(2)

2014年(8)

2013年(3)

2012年(2)

2011年(18)

2010年(102)

2009年(137)

2008年(274)

2007年(134)

分类:

2009-06-19 15:00:29

FM:ALSM_EXCEL_TO_INTERNAL_TABLE 是上载Excel文件的一个函数,但是这个函数有两个限制。
一是每个CELL只能导入前50个字符,二是如果超过9999行,行号会初始化为从零开始
其实解决起来很简单,只要改一下结构 ALSMEX_TABLINE 的字段就行了,然后COPY  ALSM_EXCEL_TO_INTERNAL_TABLE ZALSM_EXCEL_TO_INTERNAL_TABLE ,并做少许改动即可。
 
另外,如果要上载有打开密码保护的Excel,只要修改一下OLE的 OPEN 语句即可。
以及导入指定的Sheet等。。
 
注意COPY出来的函数的 Global Data 里面应该有下列语句:
 
TYPE-POOLS: ole2.
TYPES: ty_d_itabvalue             TYPE zalsmex_tabline-value,
       ty_t_itab                  TYPE zalsmex_tabline   OCCURS 0,
       BEGIN OF ty_s_senderline,
         line(4096)               TYPE c,
       END OF ty_s_senderline,
       ty_t_sender                TYPE ty_s_senderline  OCCURS 0.
CONSTANTS:  gc_esc              VALUE '"'.
 

 

阅读(9185) | 评论(7) | 转发(2) |
给主人留下些什么吧!~~

chinaunix网友2010-07-10 09:35:35

换Excel 2007......

chinaunix网友2010-07-09 22:01:27

但是CELL超过255的如何操作呢?

chinaunix网友2009-06-20 01:27:08

搞定了,谢谢,刚定义错了 ,谢谢

chinaunix网友2009-06-20 01:01:04

TYPE-POOLS: ole2. TYPES: ty_d_itabvalue TYPE zalsmex_tabline-value, ty_t_itab TYPE zalsmex_tabline OCCURS 0, BEGIN OF ty_s_senderline, line(4096) TYPE c, END OF ty_s_senderline, ty_t_sender TYPE ty_s_senderline OCCURS 0. CONSTANTS: gc_esc VALUE '"'. 放在FUNCITON前面么? 然后这样加了以后还是说In PERFORM or CALL FUNCTION "SEPARATED_TO_INTERN_CONVERT", the actual parameter "INTERN" is incompatib

chinaunix网友2009-06-19 17:09:42

把下面代码放到ENDFUNCTION.后面。 FORM separated_to_intern_convert TABLES i_tab TYPE ty_t_sender i_intern TYPE ty_t_itab USING i_separator TYPE c. DATA: l_sic_tabix LIKE sy-tabix, l_sic_col TYPE kcd_ex_col. DATA: l_fdpos LIKE sy-fdpos. REFRESH i_intern. LOOP AT i_tab. l_sic_tabix = sy-tabix. l_sic_col = 0. WHILE i_tab CA i_separator. l_fdpos = sy-fdpos. l_sic_c