Overview

Import

Enables data import from Excel files (.xls, .xlsx) in the current metadata table route.

When active, an Import XLS/XLSX button appears in the List Grid toolbar that opens the file picker and sends the file to the backend import method already available.

Table Metadata

The main toggle is:

  • md_importable

Meaning: shows/hides the import button in the List Grid toolbar.

Values: true | false.

Default: false (if absent).

Extra Props (md_props_bag)

Import options are configured in extraProps.import (derived from md_props_bag).

Snippet 1JSON
{
  "import": {
    "enabled": true,
    "skipsettings": false,
    "allowedExtensions": ["xls", "xlsx"],
    "import_type": "I",
    "commit_level": "R",

Operational Notes

  • The button is visible if md_importable = true.
  • The file is validated client-side by extension (xls, xlsx) before upload.
  • The import is executed on the current route (md_route_name) of the active datasource.
  • skipsettings:

- false (default): opens the intermediate dialog to choose import options before upload.

- true: skips the dialog and starts direct upload/import using the options already defined in md_props_bag.import.

  • Recommended defaults in the suggest:

- use_column_captions = "C" (use column captions).

- use_descriptive_fkey = true.

UI and Progress

  • After import confirmation, a progress dialog opens with real-time percentage.
  • Available actions:

- Continue in background: closes the dialog and creates a progress notification.

- Cancel import (rollback): cancels and performs rollback.

- Stop and partial commit: stops and commits what has been done.

  • At the end of import, a summary notification is created (same text as the toast); clicking navigates to the import route without refresh if already on the same page.

Existing PK Behavior (Insert-Only Import)

If import_type = "I" and the record PK already exists:

  • the insert is skipped;
  • the record is counted in the summary as "skipped inserts (existing PK)".