{"ref":"capability:data-import-export","page":"/capabilities/data-import-export","json":"/capabilities/data-import-export.json","generated":"2026-10-26","drafted_with_ai":true,"entity":{"id":"data-import-export","name":"Importing and exporting table data","domain":"data-and-persistence","ecosystems":["abap","ui5","cap"],"universal":false,"description":"Getting a file somebody supplies, a spreadsheet, a CSV or a JSON dump, into tables with its columns mapped and its values checked, and getting table content back out as a file. Data shipped with an application for development and demonstration is [seed data](capability:seed-data).","short":"Getting files into tables and table content back out as files","core_coverage":{"state":"core-and-community","assessed_at":"2026-09-14","what_core_does":"XCO_CP_XLSX reads and writes XLSX content held as an xstring, and CL_CSV_FACTORY creates writers that turn internal table content into CSV; both are among SAP's released ABAP classes.","where_it_stops":"At converting content. Getting the file from a user, mapping its columns onto a target structure and checking values before they are written are left to the application; SAP's own example uploads through a generated Fiori elements preview.","sources":[{"url":"https://github.com/SAP-samples/abap-cheat-sheets/blob/main/22_Released_ABAP_Classes.md","title":"SAP-samples/abap-cheat-sheets: Released ABAP Classes","checked":"2026-09-14","quote":"The XCO library offers classes such as `XCO_CP_XLSX` and methods for reading and writing XLSX content."}],"relationship":"unassessed","note":"SAP-samples repositories demonstrate the concern, a JSON uploader for SAP BTP ABAP Environment and an ALV export to Google Sheets; samples are not counted as providers. The community tools differ in where the file is handled: [ABAP Spreadsheet Importer](artifact:spreadsheetimporter-abap-importer) parses an uploaded XLSX or CSV file in the backend and creates its rows on a RAP business object, and [abap2UI5 for Excel](artifact:abap2ui5-addons-office-addin) moves table data between an abap2UI5 app and the open workbook without a file. How these tools relate to the XCO classes has not been assessed."},"history":[{"date":"2026-09-18","field":"coverage_by_ecosystem.cap.state","from":"unmapped","to":"community-only","reason":"A CAP entry now answers the concern: [cds-spreadsheetimporter-plugin](artifact:spreadsheetimporter-cds-spreadsheetimporter-plugin) takes a spreadsheet uploaded to a running CAP service and writes its rows into a CDS entity. The core side is unchanged — capire's database guide still documents CSV files loaded into tables at deploy time and no runtime import of a user-supplied file."},{"date":"2026-09-18","field":"coverage_by_ecosystem.ui5.state","from":"core-only","to":"core-and-community","reason":"A UI5 entry now answers the import side: [ui5-cc-spreadsheetimporter](artifact:spreadsheetimporter-ui5-cc-spreadsheetimporter) reads an uploaded spreadsheet in the browser and submits its rows through the app's own OData model. The core side is unchanged: SAP's spreadsheet export documentation still describes export only, so the previous note that no UI5 entry answers the import side is what has moved, not the reading of the core."},{"date":"2026-10-26","field":"core_coverage.note","from":"Two SAP-samples repositories demonstrate the concern, a JSON uploader ... and an ALV export to Google Sheets; ... How the community tools relate to the XCO classes has not been assessed.","to":"SAP-samples repositories demonstrate the concern ...; the community tools differ in where the file is handled, with ABAP Spreadsheet Importer and abap2UI5 for Excel named as kinds. ... How these tools relate to the XCO classes has not been assessed.","reason":"Reassessed against the graph (check:capabilities): the count of sample repositories goes stale as providers arrive, and the ABAP backend importer and the Excel add-in change the shape of the answer, so the note names those kinds. The ABAP state stays core-and-community."}],"coverage_by_ecosystem":{"ui5":{"state":"core-and-community","assessed_at":"2026-09-18","what_core_does":"sap/ui/export/Spreadsheet exports tabular data to an XLSX document, with the configuration preset for sap.ui.comp.smarttable.SmartTable and sap.ui.mdc.Table.","where_it_stops":"At export. The spreadsheet export documentation describes no import, so reading a spreadsheet a user uploads is left to the application.","relationship":"unassessed","community_adds":"The import side, in the browser: a dialog reads the uploaded file and submits its rows through the app's own OData model, so the service the app already talks to decides what is written.","note":"Whether the UI5 export API and the community import components were built to meet has not been assessed; they answer opposite halves of the concern.","sources":[{"url":"https://github.com/SAP-docs/sapui5/blob/main/docs/04_Essentials/spreadsheet-export-2691788.md","title":"SAP-docs/sapui5: Spreadsheet Export","checked":"2026-09-14","quote":"The spreadsheet export allows you to export data to an Office Open XML document of category Spreadsheet (xlsx)."}]},"cap":{"state":"community-only","assessed_at":"2026-09-18","community_adds":"The import side, as a service endpoint: a spreadsheet is uploaded to a running CAP service, parsed on the server and written into the CDS entity named in the request.","note":"CSV files in a project are loaded into the database when it is deployed, which is [seed data](capability:seed-data) rather than a file a user supplies to a running service; capire's database guide documents no runtime import of an uploaded file, so no core answer has been found for this concern in CAP.","sources":[{"url":"https://cap.cloud.sap/docs/guides/databases#providing-initial-data","title":"capire — Databases, Providing Initial Data","checked":"2026-09-18"}]}},"normative_relevance":[{"instrument":"instrument:sap-developer-license-3-2-cap","prominence":"prominent","sections":["1"],"applies_when":"A covered CAP application exports SAP product data into a non-SAP product, especially systematically or at scale.","note":"The export side can become the data-extraction case named in section 1. File format alone does not decide it; destination, scale and the scoped interoperability purpose matter.","applies_to":{"ecosystems":["cap"]},"sources":[{"url":"https://cap.cloud.sap/resources/license/developer-license-3_2_CAP.txt","title":"SAP Developer License Agreement 3.2 CAP","checked":"2026-09-16","quote":"permit mass data extraction from an SAP product to a non-SAP product"}]}],"drafted_with_ai":true},"sap_delivery":{"door":"abap","all":null,"by_flavor":{"standard-abap":null,"abap-cloud":null}},"edges":{"use_cases":[],"shared_tasks":[],"related_tasks":[],"options":[{"ref":"artifact:spreadsheetimporter-abap-importer","name":"ABAP Spreadsheet Importer","json":"/artifacts/spreadsheetimporter-abap-importer.json","ecosystem":"abap","origin_ring":"community-org"},{"ref":"artifact:abap2ui5-addons-office-addin","name":"abap2UI5 for Excel","json":"/artifacts/abap2ui5-addons-office-addin.json","ecosystem":"abap","origin_ring":"community-org"},{"ref":"artifact:abap2ui5-addons-table-content-loader","name":"abap2UI5-addons/table-content-loader","json":"/artifacts/abap2ui5-addons-table-content-loader.json","ecosystem":"abap","origin_ring":"independent"},{"ref":"artifact:kaszub09-abapdatatotableimport","name":"abapDataToTableImport","json":"/artifacts/kaszub09-abapdatatotableimport.json","ecosystem":"abap","origin_ring":"independent"},{"ref":"artifact:boy0korea-abap2json","name":"boy0korea/abap2json","json":"/artifacts/boy0korea-abap2json.json","ecosystem":"abap","origin_ring":"independent"},{"ref":"artifact:boy0korea-abap2xlsx-helper","name":"boy0korea/ABAP2XLSX_HELPER","json":"/artifacts/boy0korea-abap2xlsx-helper.json","ecosystem":"abap","origin_ring":"independent"},{"ref":"artifact:spreadsheetimporter-cds-spreadsheetimporter-plugin","name":"cds-spreadsheetimporter-plugin","json":"/artifacts/spreadsheetimporter-cds-spreadsheetimporter-plugin.json","ecosystem":"cap","origin_ring":"community-org"},{"ref":"artifact:mkysoft-xlsxreader","name":"mkysoft/xlsxreader","json":"/artifacts/mkysoft-xlsxreader.json","ecosystem":"abap","origin_ring":"independent"},{"ref":"artifact:spreadsheetimporter-ui5-cc-spreadsheetimporter","name":"ui5-cc-spreadsheetimporter","json":"/artifacts/spreadsheetimporter-ui5-cc-spreadsheetimporter.json","ecosystem":"ui5","origin_ring":"community-org"}],"samples":[{"ref":"artifact:sap-samples-abap-file-uploader","name":"abap-file-uploader","json":"/artifacts/sap-samples-abap-file-uploader.json"},{"ref":"artifact:sap-samples-abap-alv-google-upload-sheet","name":"SAP-samples/abap-alv-google-upload-sheet","json":"/artifacts/sap-samples-abap-alv-google-upload-sheet.json"},{"ref":"artifact:spreadsheetimporter-packed-deployment-abap","name":"spreadsheetimporter/packed-deployment-abap","json":"/artifacts/spreadsheetimporter-packed-deployment-abap.json"},{"ref":"artifact:spreadsheetimporter-sample-adaptation-banks","name":"spreadsheetimporter/sample-adaptation-banks","json":"/artifacts/spreadsheetimporter-sample-adaptation-banks.json"},{"ref":"artifact:spreadsheetimporter-sample-adaptation-banks-update","name":"spreadsheetimporter/sample-adaptation-banks-update","json":"/artifacts/spreadsheetimporter-sample-adaptation-banks-update.json"},{"ref":"artifact:spreadsheetimporter-sample-full-btp","name":"spreadsheetimporter/sample-full-btp","json":"/artifacts/spreadsheetimporter-sample-full-btp.json"},{"ref":"artifact:spreadsheetimporter-sample-odata-api-upload","name":"spreadsheetimporter/sample-odata-api-upload","json":"/artifacts/spreadsheetimporter-sample-odata-api-upload.json"},{"ref":"artifact:spreadsheetimporter-sample-standalone","name":"spreadsheetimporter/sample-standalone","json":"/artifacts/spreadsheetimporter-sample-standalone.json"}],"explained_by":[{"ref":"content:how-to-mass-upload-from-a-spreadsheet-file-into-an-sap-fiori-app-in-sap-btp-abap","name":"How to mass upload from a spreadsheet file into an SAP Fiori app in SAP BTP ABAP Environment Part 1","json":"/content/how-to-mass-upload-from-a-spreadsheet-file-into-an-sap-fiori-app-in-sap-btp-abap.json"}],"normative_context":[{"ref":"instrument:sap-developer-license-3-2-cap","name":"SAP Developer License Agreement","json":"/instruments/sap-developer-license-3-2-cap.json","prominence":"prominent","sections":["1"]}]}}