上载CSV文件到本机(KCD_CSV_FILE_TO_INTERN_CONVERT)

可以通过过函数KCD_CSV_FILE_TO_INTERN_CONVERT将CSV格式的文件上载到本机。

代码如下:

REPORT z_upload_csv.
TYPE-POOLS: kcde.

TYPES: BEGIN OF ty_input,
         id    TYPE string,
         name  TYPE string,
         place TYPE string,
         phone TYPE string,
       END OF ty_input.

CONSTANTS: c_separator TYPE c VALUE ‘,‘.

DATA: gt_intern  TYPE kcde_intern,
      gwa_intern TYPE kcde_intern_struc.

DATA: gt_input  TYPE TABLE OF ty_input,
      gwa_input TYPE ty_input.
*----------------------------------------------------------------------*
*     SELECTION-SCREEN
*----------------------------------------------------------------------*
PARAMETERS: p_file TYPE localfile OBLIGATORY.
*----------------------------------------------------------------------*
*     AT SELECTION-SCREEN ON VALUE-REQUEST
*----------------------------------------------------------------------*
AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_file.
*F4 help for the file in selection screen
  CALL FUNCTION ‘F4_FILENAME‘
    IMPORTING
      file_name = p_file.
*----------------------------------------------------------------------*
*     START-OF-SELECTION
*----------------------------------------------------------------------*
START-OF-SELECTION.
* Read data from File
  PERFORM readfile USING p_file.
* Display data
  PERFORM display.
*&---------------------------------------------------------------------*
*&      Form  READFILE
*&---------------------------------------------------------------------*
FORM readfile USING p_file TYPE localfile.

  DATA: lv_filename TYPE rlgrap-filename.
  DATA: lv_index TYPE i.
  FIELD-SYMBOLS: <lfs_field> TYPE any.

  lv_filename = p_file.

* 读取CSV文件
  CALL FUNCTION ‘KCD_CSV_FILE_TO_INTERN_CONVERT‘
    EXPORTING
      i_filename      = lv_filename
      i_separator     = c_separator
    TABLES
      e_intern        = gt_intern
    EXCEPTIONS
      upload_csv      = 1
      upload_filetype = 2
      OTHERS          = 3.
  IF sy-subrc <> 0.
    MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
            WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
  ENDIF.

* 将读取的CSV内容转换保存到内表gt_input中
  LOOP AT gt_intern INTO gwa_intern.
    MOVE : gwa_intern-col TO lv_index.
    ASSIGN COMPONENT lv_index OF STRUCTURE gwa_input TO <lfs_field>.
    MOVE : gwa_intern-value TO <lfs_field> .
    AT END OF row.
      APPEND gwa_input TO gt_input.
      CLEAR gwa_input.
    ENDAT.
  ENDLOOP.

ENDFORM.                    " READFILE
*&---------------------------------------------------------------------*
*&      Form  DISPLAY
*&---------------------------------------------------------------------*
FORM display.
* 输出CSV内容
  LOOP AT gt_input INTO gwa_input.
    WRITE:/ gwa_input-id,8 gwa_input-name,16
            gwa_input-place,26 gwa_input-phone.
  ENDLOOP.
ENDFORM.                    " DISPLAY

引用来自 http://www.baidusap.com/abap/function/2114

原文地址:https://www.cnblogs.com/wangxiaowen/p/8997692.html

时间: 2024-10-15 11:09:58

上载CSV文件到本机(KCD_CSV_FILE_TO_INTERN_CONVERT)的相关文章

下载CSV文件到本机(SAP_CONVERT_TO_TEX_FORMAT)

CSV文件是逗号分隔符格式的文件.将内表数据下载成CSV文件到本机上要先将内表中的数据通过函数SAP_CONVERT_TO_TEX_FORMAT转换成CSV格式,然后再下载到本机. REPORT z_download_csv. TYPE-POOLS: truxs. *&---------------------------------------------------------------------* *& Data Types *&---------------------

理解CSV文件以及ABAP中的相关操作

在很多ABAP开发中,我们使用CSV文件,有时候,关于CSV文件本身的一些问题使人迷惑.它仅仅是一种被逗号分割的文本文档吗? 让我们先来看看接下来可能要处理的几个相关组件的词汇的语义. Separator:两个字段之间的界线,在CSV文件中即是“,”. Delimiter:这种符号的开端和结束,代表了某种东西的界限.举个例子“测试字符串”有两个delimiters,即两个双引号.在很多逗号需要成为文本的情况下,这些CSV文件会使用双引号作为Delimiter. Terminator : 代表片段

Spring Batch示例: 读取CSV文件并写入MySQL数据库

Spring Batch示例: 读取CSV文件并写入MySQL数据库 GitHub版本: https://github.com/kimmking/SpringBatchReferenceCN/blob/master/01_introduction/Spring_Batch_MySQL.md 原文链接: Reading and writing CVS files with Spring Batch and MySQL 原文作者: Steven Haines - 技术架构师 下载本教程的源代码: S

分批次读取csv文件,并保存到数据库

读取上百万行的csv文件,由于数据量太大,一次性将csv的内容读取出来,保存在内存中,会导致内存严重吃不消,最后直接宕机,所以建议采取分批次读数据然后保存数据库中,以下是简单测试方法,可根据具体需求做修改.对大批量数据的操作,建议用jdbc直接批量添加,修改,删除等操作. import java.util.List;import java.io.BufferedReader;import java.io.File;import java.io.FileNotFoundException;impo

Spring Batch使用示例: 读取CSV文件并写入MySQL数据库

GitHub版本: https://github.com/kimmking/SpringBatchReferenceCN/blob/master/01_introduction/Spring_Batch_MySQL.md ------------ 编写批处理程序来处理GB级别数据量无疑是种海啸般难以面对的任务,但我们可以用Spring Batch将其拆解为小块小块的(chunk). Spring Batch 是Spring框架的一个模块,专门设计来对各种类型的文件进行批量处理. 本文先讲解一个简

oracle导出多CSV文件的靠谱的

oracle导出多CSV文件的问题 ---------------------------------------------------------------------- 用ksh脚本从oracle数据库中导出80w数据到csv文件,如用户给定名字为a.csv(文件最大4000行记录),则自动生产文件为a_1.csv,a_2.csv,...., a_200.csv 我已经实现了一个方法,但80w要导5小时,用户没法接受.如下: sqlplus -s user/pwd @${SqlDir}/

字符串与csv文件的日常操作

本周使用习惯了函数式编程,这样可以节省不少繁琐的步骤,而且对于程序的条理化非常有益.说来简单就是每个东西写成函数,规定输入输出. 下一周的任务就是面向对象了,把对象这个东西搞清楚,说不定可以重写整个文件为对象的操作 这里说几个本周很经常用的方法,一个是构建字符串数据中的字典数据,实际就是一个列表,这个列表我也是参考了一个tf-idf的文档给出的方法,核心思想就是将每一个字符串填入一个list最后将list写入循环对比,如果碰到一样的跳过,如果遇到不一样的输出,并且把这个字符串同样装入到list中

C/C++读写csv文件(用getline探测逗号分隔符)

csv文件其实就是文本文件,每行字段用逗号分隔. 代码 [cpp] view plain copy print? #include <iostream> #include <string> #include <vector> #include <fstream> #include <sstream> using namespace std; int main() { // 写文件 ofstream outFile; outFile.open(&q

解决 Excel 打开 UTF-8 编码 CSV 文件乱码的 BUG

解决 Excel 打开 UTF-8 编码 CSV 文件乱码的 BUG [email protected] http://www.cnblogs.com/swje/ 作者:Zhouwan 2017-6-6 方法一: 出处:http://blog.csdn.net/leonzhouwei/article/details/8447643 直接用 Excel 打开 UTF-8 编码的 CSV 文件会导致汉字部分出现乱码. 原因是 Excel 以 ANSI 格式打开,不会做编码识别. 打开 UTF-8 编