一、文件上传
  本地的文本文件或者Excel文件上传到服务器内表中,数据自动转换,文件数据列之间默认通过table键分隔,也可以自己指定。
  核心函数:TEXT_CONVERT_XLS_TO_SAP
  上传示例代码:

TYPE-POOLS:truxs.
PARAMETERS:p_file LIKE rlgrap-filename OBLIGATORY MEMORY ID a1. "MEMORY ID 表示当用户再次进入该输入框时,上次输入的文件名还在
DATA: it_raw TYPE truxs_t_text_data.
DATA:l_obj TYPE REF TO cl_gui_frontend_services.
DATA: it_file TYPE filetable WITH HEADER LINE.
DATA: g_rc TYPE i.
DATA: BEGIN OF lt_data OCCURS 0,c(2) TYPE c,n(2) TYPE n,i TYPE i,d TYPE d,END OFlt_data.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_file. "弹出选择文件对话框CREATE OBJECT l_obj.CALL METHOD l_obj->file_open_dialogEXPORTINGfile_filter       = '*.xls;*.xlsx;*.txt'initial_directory = 'C:\data'CHANGINGfile_table        = it_file[]rc                = g_rc.READ TABLE it_file INDEX 1.p_file = it_file-filename.
START-OF-SELECTION.CALL FUNCTION 'TEXT_CONVERT_XLS_TO_SAP'    "可以是Excel文件,也可以是Txt文件EXPORTING
*     I_FIELD_SEPERATOR    = 分隔符,默认为Tabi_line_header        = 'X' i_tab_raw_data       = it_raw "该参数实际上没有使用到,但为必输参数i_filename           = p_fileTABLESi_tab_converted_data = lt_data. "会自动的将Excel、Txt文件中的数据一行行读取到数据内表中EXCEPTIONSconversion_failed    = 1OTHERS               = 2.IF sy-subrc <> 0.MESSAGE '文件上传失败!' TYPE 'E'.ENDIF.

二、文件下载
  下面有两个函数可以把ABAP内表中的数据下载到本地Excel文件中,分别是
SAP_CONVERT_TO_XLS_FORMAT和GUI_DOWNLOAD。
  1、SAP_CONVERT_TO_XLS_FORMAT函数

 DATA: lt_lines TYPE TABLE OF YLY_TESTTABLE1.SELECT * FROM YLY_TESTTABLE1 INTO lt_lines.CALL FUNCTION 'SAP_CONVERT_TO_XLS_FORMAT'EXPORTINGi_filename     = 'd:\1.xlsx' "下载至除C盘以外的盘,以免发生意想不到的错误TABLESi_tab_sap_data = lt_linesEXCEPTIONSCONVERSION_FAILED          = 1OTHERS                     = 2.IF SY-SUBRC <> 0.write:'failed'.ELSE.write:'OK'.ENDIF.

注:如果下载的1.xlsx文件已经存在,那么数据将会覆盖原数据。但是如果新数据的行数比原数据的行数少,那么它在原数据中只覆盖掉 新数据行数 那么多的数据;
  2、GUI_DOWNLOAD函数

DATA: lt_lines TYPE TABLE OF YLY_TESTTABLE1.
SELECT * FROM YLY_TESTTABLE1 INTO TABLE lt_lines.
CALL FUNCTION 'GUI_DOWNLOAD'
EXPORTINGfilename = 'D:\gui_download.XLS' "下载至除C盘以外的盘,以免发生意想不到的错误filetype = 'DAT'codepage = '4103'replacement = '#'write_field_separator = 'X'write_bom = 'X'
TABLESdata_tab = lt_lines.

注:如果gui_download.XLS文件已经存在,它不像SAP_CONVERT_TO_XLS_FORMAT函数一样,它会完全覆盖原数据,而不管原数据行数是否与新数据行数相等。

相关的参数英文解释如下:
1. FILETYPE

‘ASC’ :

ASCII format. The table is transferred as text. Conversion exits are performed. The output format additionally depends on the parameters CODEPAGE, TRUNC_TRAILING_BLANKS, and TRUNC_TRAILING_BLANKS_EOL.

‘IBM’ :

ASCII format with IBM codepage conversion (DOS). This format corresponds to the ‘ASC’ format when using target codepage 1103. This codepage is frequently used for data exchange via floppy disk.

‘DAT’ :

Column-by-column transfer. With this format, the data is transferred as text as with ASC. However, no conversion exits are performed and the columns are separated by tab characters. This format generates files than can be uploaded again using gui_upload or ws_upload.

‘DBF’ :

Data is downloaded in dBase format. Since in this format the data types of the individual columns are stored as well, you can often avoid import problems, for example, into Microsoft Excel, especially when interpreting numeric values.

‘WK1’ :

Data is downloaded in Lotus 1-2-3 format.

‘BIN’ :

Binary format. Data is transferred binarily. There is no formatting and no codepage conversion. The data is interpreted row by row; it is not formatted by columns. Specify the data length in parameter BIN_FILESIZE. The table should consist of a column of type X, because especially in Unicode systems, the conversion of structured into binary data causes errors.

Default

‘ASC’

2. APPEND

GUI_DOWNLOAD APPEND

By default, existing local files are overwritten by new versions. By setting APPEND to ‘X’, the downloaded data is appended to an existing file. If the file does not yet exist, it is created.

Value range

‘X’ = Data is appended.

SPACE = Data is overwritten if the file already exists.

Default

SPACE

3. WRITE_FIELD_SEPARATOR

GUI_DOWNLOAD WRITE_FIELD_SEPARATOR

In the downloaded file, the columns are separated by tab characters (cl_abap_char_utilities=>horizontal_tab). You should use this setting if you want to upload the data from the file at a later time, because this is the only way of identifying individual columns.

The parameter makes sense only for the FILETYPE values ASC, DAT and IBM; for DAT it is set implicitly.

Value range

‘X’ : Write separator.

SPACE : Do not write separator.

Default

SPACE

4. WRITE_LF

GUI_DOWNLOAD WRITE_LF

If this parameter is set, at the end of each row a row separator is inserted by CL_ABAP_CHAR_UTILITIES=>CR_LF. This parameter makes sense only for FILETYPE ‘ASC’, ‘DAT’ and ‘IBM’. If this parameter is not set, blanks at the end of a row are not removed.

Value range

‘X’: Row separator is inserted.

SPACE: Row separator is not inserted.

Default

‘X’

5. DAT_MODE

GUI_DOWNLOAD DAT_MODE

If parameter DAT_MODE is set, the file is stored in ‘DAT’ format. No conversion exits are performed. Number and date fields are stored in a standard format which makes it possible, to later import the file using gui_upload.

Value range

‘X’: DAT_MODE is switched on.

SPACE: DAT_MODE is not switched on.

Default

SPACE

6. CODEPAGE

GUI_DOWNLOAD CODEPAGE

Use parameter CODEPAGE to specify the desired target codepage. If this parameter is not set, the codepage of the SAP GUI is used as the target codepage.

Value range

4-digit number of the SAP codepage. The function module SCP_CODEPAGE_BY_EXTERNAL_NAME returns the SAP codepage number for an external character set name, for example, “iso-8859-1”. The function module NLS_GET_FRONTEND_CP returns the appropriate non-Unicode frontend codepage for a language.

You can determine the desired codepage interactively, if the parameter with_encoding of method file_save_dialog is set by cl_gui_frontend_services.

SPACE: Codepage of the SAP GUI

Default

SPACE

7. REPLACEMENT

GUI_DOWNLOAD REPLACEMENT

Specifies the replacement character to be used when during a character set conversion a character cannot be converted.

Value range

An individual character.

Default

‘#’

8. WRITE_BOM

GUI_DOWNLOAD WRITE_BOM

If the data is written in a Unicode codepage, at the beginning of the file the respective byte order mark (BOM) is inserted.

Unicode - Little Endian Codepage 4103, binary values ‘FFFE’

Unicode - Big Endian Codepage 4102, binary values ‘FEFF’

UTF-8 Codepage 4110, binary values ‘EFBBBF’

Note: Microsoft Excel only supports Unicode data if they have been written in the format Unicode - Little Endian.

Value range

‘X’: Write BOM.

SPACE: Do not write BOM.

Default

SPACE

9. FIELDNAMES

GUI_DOWNLOAD FIELDNAMES

Optional table with column names for the individual columns.

‘DBF’: The column names are entered into the structure definition of the DBF file.
‘DAT’: An additional row with the column names is inserted at the beginning of the table.

abap文件上传与下载相关推荐

  1. Angular 文件上传与下载

    Angular文件上传与下载 文件上传 方式1 使用NG ZORRO中的组件. 文件下载 方式1 直接下载 方式2 通过HTTP请求后端数据的方式进行下载 文件上传 方式1 使用NG ZORRO中的组 ...

  2. SpringBoot下文件上传与下载的实现

    原文:http://blog.csdn.net/colton_null/article/details/76696674 SpringBoot后台如何实现文件上传下载? 最近做的一个项目涉及到文件上传 ...

  3. Python实现阿里云aliyun服务器里的文件上传与下载

    Python实现阿里云服务器里的文件上传与下载 Python实现阿里云服务器里的文件上传与下载 背景: 正文: 预备环境: 构想: 实现: 注意: 结尾 018.4.15 背景: 老实说,因为现实的各 ...

  4. java使用Jsch实现远程操作linux服务器进行文件上传、下载,删除和显示目录信息...

    1.java使用Jsch实现远程操作linux服务器进行文件上传.下载,删除和显示目录信息. 参考链接:https://www.cnblogs.com/longyg/archive/2012/06/2 ...

  5. php从ftp下载文件到本地,php使用ftp实现文件上传与下载功能

    本文实例为大家分享了php ftp文件上传与下载的具体代码,供大家参考,具体内容如下 ftp文件上传 php自带有ftp操作的函数包,一个比较简单实现的ftp文件上传操作可以通过以下几个步骤来完成: ...

  6. 2014-07-23 利用ASP.NET自带控件实现单文件上传与下载

    效果图 上传文件页面: 下载文件页面:   1.母版页site.Master <%@ Master Language="C#" AutoEventWireup="t ...

  7. PHP文件上传,下载,Sql工具类!

    PHP文件上传,下载,Sql工具类! 对文件大小,文件类型 同名覆盖 中文转码的操作,可直接使用 前台 upload.html <!DOCTYPE html> <html> & ...

  8. WSE3.0构建Web服务安全(4):MTOM消息传输优化和文件上传、下载

    MTOM消息优化传输机制主要应用于大量数据的传输,很多文章中也直接得出结论:使用MTOM文件传输效率高.为什么MTOM的数据传输效率会比别的方式要高?MTOM真的如此完美吗,它有什么不足?什么情况下使 ...

  9. [转载]ASP.NET Core文件上传与下载(多种上传方式)

    ASP.NET Core文件上传与下载(多种上传方式) 前言 前段时间项目上线,实在太忙,最近终于开始可以研究研究ASP.NET Core了. 打算写个系列,但是还没想好目录,今天先来一篇,后面在整理 ...

最新文章

  1. 有关使用sklearn LogisticRegression出现的 DeprecationWarning:
  2. 为DbHelper工具类添加关闭资源的方法 jdbc 20210412_212728.mp4
  3. spark学习-SparkSQL-java版JavaRDD与JavaPairRDD的互相转换
  4. 程序员,学会这些技能让你的薪资翻倍!
  5. 大学生在校期间可以考哪些证书?
  6. 简单了解 Tendermint
  7. 【ThinkPHP5.0RC2吃螃蟹之】关于ThinkPHP5.0的渲染模板输出
  8. hdu 4609 3-idiots——FFT
  9. C4D怎么快速建模桌布? c4d创建桌布的教程
  10. JS设计模式之工厂模式
  11. 创建oracle自增序列
  12. win7计算机怎么初始化,Win7系统网络初始化的设置方法
  13. 程序猿生存指南-41 冬日归乡
  14. 当RPM包安装遇上“依赖性”问题时的解决办法
  15. android伪装mac地址,安卓手机如何伪装ip或者mac地址
  16. python 鼠标 自动点击_鼠标隔段时间自动点击屏幕
  17. 用 Hypothesis 来自动化单元测试
  18. 4.1 随机变量的数学期望
  19. 网上商城从搭建到推广全流程细节注意点
  20. GitHub 标星 1000+ 的开源电子书

热门文章

  1. solo π环境搭建
  2. stress内存在linux测试结果,Linux压力测试软件Stress安装及使用指南
  3. 如何成为一个成功的人?
  4. MyBatis框架的特性
  5. pgpool mysql_pgpool的健康检查和failover代码
  6. 实验五 微控制器实验
  7. c语言字符是英文还是中文,c语言中判断中文还是英文字符
  8. 关于MySQL数据库
  9. JQuery 详细教程
  10. Total Recorder Professional V6.0 注册版