İçeriğe geç

SAP Eğitim

ABAP’ta CL_FDT_XL_SPREADSHEET ile Excel (XLSX) Okuma ve Yazma

Sercan Koçal

Yazar

Yayın tarihi:

2 dk okuma

Okunma sayısı: 70

ABAP’ta CL_FDT_XL_SPREADSHEET ile Excel (XLSX) Okuma ve Yazma

ABAP projelerinde Excel ile veri alışverişi neredeyse kaçınılmazdır. Uzun yıllar boyunca bu ihtiyaç ALSM_EXCEL_TO_INTERNAL_TABLE veya OLE Automation gibi yöntemlerle karşılandı. Ancak bu yaklaşımlar günümüzde hem eski hem de bakım maliyeti yüksek çözümler olarak değerlendirilmektedir.

SAP bu noktada, modern sistemlere uyumlu, desteklenen ve background çalışmaya uygun bir alternatif sunmaktadır: CL_FDT_XL_SPREADSHEET. Bu yazıda, söz konusu sınıfı kullanarak ABAP tarafında XLSX dosyalarının nasıl okunup yazılabileceğini sade ve anlaşılır bir şekilde ele alıyoruz.

CL_FDT_XL_SPREADSHEET Nedir?

CL_FDT_XL_SPREADSHEET, OLE Automation kullanmadan Excel (XLSX) dosyalarıyla çalışmayı sağlayan SAP standardı bir ABAP sınıfıdır.

  • XLSX formatı desteği
  • Background job uyumluluğu
  • SAP GUI bağımlılığı olmaması

Özetle; Excel ile veri alışverişi için güncel, güvenli ve sürdürülebilir bir yaklaşımdır.

CL_FDT_XL_SPREADSHEET overview
CL_FDT_XL_SPREADSHEET sınıfının genel kullanım yapısı.

Excel’den Veri Okuma (Upload)

İlk adımda Excel dosyasını binary formatta sisteme alarak XSTRING değişkenine dönüştürmemiz gerekir.

ABAP

cl_gui_frontend_services=>gui_upload(
  EXPORTING
    filename = 'C:\temp\data.xlsx'
    filetype = 'BIN'
  IMPORTING
    filelength = gv_bin_len
  CHANGING
    data_tab = gt_file_contents ).

    

Ardından binary veri SCMS_BINARY_TO_XSTRING fonksiyonu ile XSTRING formatına dönüştürülür ve spreadsheet nesnesi oluşturulur.

ABAP

CREATE OBJECT go_excel
  EXPORTING
    document_name = gv_docname
    xdocument     = gv_xstring.

    
Excel upload process in ABAP
Excel dosyasının ABAP tarafında XSTRING olarak işlenmesi.

Birden Fazla Worksheet’in Okunması

get_worksheet_names metodu ile dosyada bulunan tüm worksheet’ler alınabilir ve her biri bağımsız olarak işlenebilir.

  • Her worksheet ayrı iş kurallarına tabi tutulabilir
  • Tek Excel dosyasından çoklu veri seti okunabilir

Excel’e Veri Yazma – Dinamik XLSX Oluşturma

Kurumsal projelerde Excel çıktıları çoğu zaman dinamik internal table yapılarından üretilir. CL_FDT_XL_SPREADSHEET, kolonları çalışma anında oluşturarak bu senaryoyu destekler.

Sonuç

CL_FDT_XL_SPREADSHEET, ABAP’ta Excel entegrasyonu için modern, sürdürülebilir ve SAP tarafından desteklenen bir yaklaşımdır. ALSM ve OLE tabanlı çözümler yerine bu sınıfın tercih edilmesi, projeleri hem daha temiz hem de geleceğe daha hazır hale getirir.

Etiketler:
  • ABAP
  • CL_FDT_XL_SPREADSHEET
  • Excel XLSX
  • SAP ABAP
  • Excel Upload
  • Excel Download
  • Background Job
  • Internal Table
  • Dynamic XLSX
  • SAP Reporting