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.
Excel’den Veri Okuma (Upload)
İlk adımda Excel dosyasını binary formatta sisteme alarak XSTRING değişkenine dönüştürmemiz gerekir.
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.
CREATE OBJECT go_excel
EXPORTING
document_name = gv_docname
xdocument = gv_xstring.
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.