OLE上传及下载并修改excel

对于比较复杂的格式的EXCEL,不方便自己用程序来写格式,此时可以用OLE将EXCEL模板传到系统当中去,

然后从系统中下载该模板后再填充需要的数据保存即可实现要想的EXCEL.

 

上传excel文件时首先需要维护MIME类型,否则不能上传,上传完之后可在表wwwdata看到数据行

T_CODE:  SMW0

 


新增: excel  *.xls


常见的MIME类型

超文本标记语言文本 .html text/html

xml文档 .xml text/xml

XHTML文档 .xhtml application/xhtml+xml

普通文本 .txt text/plain

RTF文本 .rtf application/rtf

PDF文档 .pdfapplication/pdf

MicrosoftWord文件 .word application/msword

PNG图像 .png image/png

GIF图形 .gif image/gif

JPEG图形 .jpeg,.jpg image/jpeg

au声音文件 .au audio/basic

MIDI音乐文件 mid,.midi audio/midi,audio/x-midi

RealAudio音乐文件 .ra, .ram audio/x-pn-realaudio

MPEG文件 .mpg,.mpeg video/mpeg

AVI文件 .avi video/x-msvideo

GZIP文件 .gzapplication/x-gzip

TAR文件 .tar application/x-tar

 

 

 

smw0,选择二进制数据


选择包MI


创建对象,创建对象时,名称需要以Z开头


 

以下程序实现下载服务器上的模板文件到本地

DATA:rc TYPE i,

     filetable TYPE TABLE OF file_table WITH HEADER LINE,

     g_file TYPE rlgrap-filename,

     gs_data LIKE wwwdatatab.

 

PARAMETERS:p_file TYPE string.

 

AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_file.

  CALL METHOD cl_gui_frontend_services=>file_open_dialog

    EXPORTING

      default_filename = p_file

    CHANGING

      rc               = rc

      file_table       = filetable[].

 

  READ TABLE filetable INDEX 1.

  IF sy-subrc EQ 0 .

    p_file = filetable-filename.

  ENDIF.

 

START-OF-SELECTION.

  g_file = p_file.

 

  SELECT SINGLE relid objid

  FROM   wwwdata

  INTO   CORRESPONDING FIELDS OF gs_data

     WHERE srtf2 = 0

    AND relid = 'MI'

    AND objid = 'ZEXCEL'.

 

  IF sy-subrc NE 0 OR gs_data-objid EQ space.

    MESSAGE '模板不存在!' TYPE 'I'.

  ENDIF.

 

  CALL FUNCTION 'DOWNLOAD_WEB_OBJECT'

    EXPORTING

      key         = gs_data

      destination = g_file

    IMPORTING

      rc          = rc.

 

  IF rc NE 0.

    MESSAGE '模板下载失败' TYPE 'E'.

  ENDIF.

 

 

 

然后即可OLE编程方式(见OLE示例从服务器上下载下来的excel文件进行操作,实现EXCEL数据的导入。

 

EG:将第四行第五列填充为'TITLE'. 引号中的内容不区分大小写

 

 CREATE OBJECT excel 'EXCEL.APPLICATION'.

  SET PROPERTY OF excel 'Visible' = 1.

 

  CALL METHOD OF excel 'WORKBOOkS' = workbook.

 

  CALL METHOD OF workbook 'OPEN' = workbook   "读取EXCEL对象到WORKBOOK

    EXPORTING

    #1 = g_file.  "excel文件地址名

  

  CALL METHOD OF workbook 'WORKSHEETS' = sheet"读取EXCEL中名为'1'SHEET到对象SHEET

    EXPORTING

    #1 = '1'.  "这个1EXCELSHEET的名字

  

  CALL METHOD of sheet 'Activate'.             "激活当前SHEET.

 

  CALL METHOD OF excel 'Cells' = cell          "读取单元格

    EXPORTING

    #1 = 4    "第四行第五列

    #2 = 5.

  SET PROPERTY OF cell 'Value' = 'TITLE' .

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值