转自:http://blog.csdn.net/jy00873757/article/details/8534492

在SAP我们经常会用到*.txt, *.csv, *.xls三种文件格式

*.TXT

1. 一般用GUI_UPLOAD来处理, 请看下面的例子:

  1. TYPES: BEGIN OF ty_luke,
  2. key1 TYPE zluke-key1,
  3. year1 TYPE zluke-year1,
  4. month1 TYPE zluke-month1,
  5. test TYPE zluke-test,
  6. END OF ty_luke.
  7. DATA: lw_luke TYPE ty_luke,
  8. lt_luke TYPE STANDARD TABLE OF ty_luke.
  9. DATA: lv_file TYPE string VALUE 'D:\ZZERO2.TXT'.
  10. CALL FUNCTION 'GUI_UPLOAD'
  11. EXPORTING
  12. filename            = lv_file
  13. filetype            = 'ASC'
  14. has_field_separator = 'X'
  15. TABLES
  16. data_tab            = lt_luke
  17. EXCEPTIONS
  18. file_open_error     = 1
  19. file_read_error     = 2
  20. OTHERS              = 3.
  21. IF sy-subrc <> 0.
  22. * MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
  23. *         WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
  24. ENDIF.
  25. BREAK-POINT ID z_zero_test.

2. 这是upload的文件

3. 读取文件的结果

*CSV

1. 首先CSV是不能处理中文的, 请看下面截图:

当我保存这个文件后再打开, 字已经变了

2. 常用FM: KCD_CSV_FILE_TO_INTERN_CONVERT

  1. TYPES truxs_t_text_data(4096) TYPE c OCCURS 0.
  2. DATA: lv_file TYPE rlgrap-filename VALUE 'D:\UPLOAD.CSV'.
  3. TYPES: BEGIN OF kcde_intern_struc.
  4. INCLUDE STRUCTURE  kcde_cells.
  5. *        row   type kcde_row_col,
  6. *        col   type kcde_row_col,
  7. *        value type kcde_intern_value,
  8. TYPES: END OF kcde_intern_struc.
  9. TYPES: BEGIN OF ty_file,
  10. zfld1(4) TYPE c,
  11. zfld2(5) TYPE c,
  12. zfld3(6) TYPE c,
  13. END OF ty_file.
  14. DATA:lv_raw TYPE truxs_t_text_data.
  15. DATA: lt_file TYPE STANDARD TABLE OF ty_file,
  16. ls_file TYPE ty_file.
  17. DATA: lt_temp TYPE STANDARD TABLE OF kcde_intern_struc,
  18. ls_temp TYPE kcde_intern_struc.
  19. FIELD-SYMBOLS: <fs_file>.
  20. DATA: lv_index TYPE i.
  21. CALL FUNCTION 'KCD_CSV_FILE_TO_INTERN_CONVERT'
  22. EXPORTING
  23. i_filename      = lv_file
  24. i_separator     = ','
  25. TABLES
  26. e_intern        = lt_temp
  27. EXCEPTIONS
  28. upload_csv      = 1
  29. upload_filetype = 2
  30. OTHERS          = 3.
  31. IF sy-subrc = 0.
  32. CLEAR: ls_temp, ls_file.
  33. LOOP AT lt_temp INTO ls_temp.
  34. CLEAR: lv_index.
  35. lv_index = ls_temp-col.
  36. ASSIGN COMPONENT lv_index OF STRUCTURE ls_file TO <fs_file>.
  37. IF sy-subrc = 0.
  38. <fs_file> = ls_temp-value.
  39. ENDIF.
  40. AT END OF row.
  41. APPEND ls_file TO lt_file.
  42. CLEAR ls_file.
  43. ENDAT.
  44. CLEAR ls_temp.
  45. ENDLOOP.
  46. ENDIF.
  47. BREAK-POINT.

3. Upload的文件

4. 读取文件的结果:

5. 加上我后面那段逻辑处理, 就能得到最后的结果

6. 注意: 这个FM不能处理",

把文件改成如下图所示:

再运行程序, 程序就会dump, 想知道为什么, 自己debug一下吧

*.XLS

1. 常用FM: TEXT_CONVERT_XLS_TO_SAP

  1. TYPE-POOLS: truxs.
  2. DATA: lv_file TYPE rlgrap-filename VALUE 'D:\ZZERO3.XLS'.
  3. TYPES: BEGIN OF ty_data,
  4. key(3)   TYPE c,
  5. year(4)  TYPE c,
  6. month(2) TYPE c,
  7. test(4)  TYPE c,
  8. END OF ty_data.
  9. DATA: lv_raw TYPE truxs_t_text_data.
  10. DATA: lw_data TYPE ty_data,
  11. lt_data TYPE STANDARD TABLE OF ty_data.
  12. CALL FUNCTION 'TEXT_CONVERT_XLS_TO_SAP'
  13. EXPORTING
  14. *   I_FIELD_SEPERATOR          =
  15. *   I_LINE_HEADER              =
  16. i_tab_raw_data             = lv_raw
  17. i_filename                 = lv_file
  18. TABLES
  19. i_tab_converted_data       = lt_data
  20. EXCEPTIONS
  21. conversion_failed          = 1
  22. OTHERS                     = 2
  23. .
  24. IF sy-subrc <> 0.
  25. MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
  26. WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
  27. ENDIF.

2. Upload的文件

3. 读取文件的结果:

ABAP upload file(*.txt *.csv *.xls)的更多相关文章

  1. mysql 查询导出(txt,csv,xls)

    1 简介 工作中产品经常会临时找我导出一些数据,导出mysql查询结果数据有几种方法,下面介绍3种. ①  mysql -u  -p  -e "sql" db > filep ...

  2. java读取txt/pdf/xls/xlsx/doc/docx/ppt/pptx

    环境准备txt利用common-iopdf利用pdfbox剩下的用POI关于POI,读取xls没啥特别的,主要是读取doc和ppt,需要下载poi源代码,然后将poi-src-3.7-20101029 ...

  3. Upload file

    <h3>Upload File</h3> <form action="@Url.Action("Upload","UploadCo ...

  4. Data access between different DBMS and other txt/csv data source by DB Query Analyzer

        1 About DB Query Analyzer DB Query Analyzer is presented by Master Genfeng,Ma from Chinese Mainl ...

  5. [数据科学] 从csv, xls文件中提取数据

    在python语言中,用丰富的函数库来从文件中提取数据,这篇博客讲解怎么从csv, xls文件中得到想要的数据. 点击下载数据文件http://seanlahman.com/files/databas ...

  6. 页面无刷新Upload File

    页面无刷新Upload File. 利用jquery.form.js的ajaxForm提交文件. 具体参考以下代码: 前台html <%@ Page Language="C#" ...

  7. JMeter学习-027-JMeter参数文件(脚本分发)路径问题:jmeter.threads.JMeterThread: Test failed! java.lang.IllegalArgumentException: File distributed.csv must exist and be readable解决方法

    前些天,在进行分布式参数化测试的时候,出现了如题所示的错误报错信息.此文,针对此做一个简略的重现及分析说明. JMX脚本线程组参数配置如下所示: 参数文件路径配置如下所示: 执行JMX脚本后,服务器对 ...

  8. jQuery文件上传插件jQuery Upload File 有上传进度条

    jQuery文件上传插件jQuery Upload File 有上传进度条 jQuery文件上传插件jQuery Upload File,插件使用简单,支持单文件和多文件上传,支持文件拖拽上传,有进度 ...

  9. Angular HttpClient upload file with FormData

    从sof上找到一个example:https://stackoverflow.com/questions/46206643/asp-net-core-2-0-and-angular-4-3-file- ...

随机推荐

  1. 盘点支持Orchard的.NET 4.5虚拟主机(虚拟空间)

    Orchard作为.NET社区最为先进的开源项目之一,已经被越来越多的人使用, 由于它使用了最时髦的微软技术栈(.NET4.5),因此在 Win2008+和IIS7+ 的环境上运行最为完美, 而win ...

  2. dede实战系统:更换成kindEditor编辑器

    最近由于项目需要,在搞dedeCMS,发现dede自带的ckEditor在word粘贴这方面做得不是很好,从word上面直接ctrl+V的内容跟wrod上面的表现样式相差很大,客户很不爽(因为是编辑的 ...

  3. Can''t find the channel handler for deviceType 工行 个人网银 错误

    背景描述:系统Win7,浏览器IE8.登录工商银行个人网银的时候,输入帐号密码和验证码后,出现空白页面,上面一句话  Can''t find the channel handler for devic ...

  4. oracle exchange partition 測试

    Exchange partition提供了一种方式,让你在表与表或分区与分区之间迁移数据.注意不是将表转换成分区或非分区的形式,而仅仅仅是迁移表中数  据(互相迁移),因为其号称是採用了更改数据字典的 ...

  5. 关于Web项目的pom文件处理

    pom文件的方式需要修改的是 <packaging>war</packaging> <profiles> <profile> <id>com ...

  6. Erlang 督程 启动和结束子进程

    1.督程: test_sup 2.子进程:test_gen_server 3.子进程规格Spec: { test_gen_server, {test_gen_server, start_link, [ ...

  7. 17:不重复整数提取NoRepeatNum

    题目描述 输入一个int型整数,按照从右向左的阅读顺序,返回一个不含重复数字的新的整数. 输入描述:输入一个int型整数 输出描述:按照从右向左的阅读顺序,返回一个不含重复数字的新的整数 输入例子: ...

  8. 如何用openssl命令行生成证书

    老大要我在web server里面加上https功能,可是但就使用openssl生成证书就耗费了我两天时间,网上有很多相关的资料,但是都写的很复杂, 照着他们的来,还是走了很多弯路. 我总结一下,步骤 ...

  9. python thrift hbase安装连接

    默认已装好 hbase,我的版本是hbase-0.98.24,并运行 python 2.7.x 步骤: sudo apt-get install automake bison flex g++ git ...

  10. 网络通信数据处理 Xbytestring类

    PS_Xbytestring a byte string for store low level data type 文件夹[TOC] PS_Xbytestring 文件夹TOC base info ...