Skip to main content
TeeBI provides a comprehensive suite of data import capabilities, allowing you to load data from various file formats, databases, and even AI services. All import operations are designed to be simple, fast, and automatic.

Import Sources

TeeBI supports importing data from:

CSV/TSV

Import comma or tab-separated text files with automatic delimiter detection

JSON

Load JSON data with support for nested structures and arrays

XML

Parse XML files with automatic hierarchy detection

Databases

Connect to SQL databases and import tables with full schema

Excel

Import Microsoft Excel spreadsheets (.xls, .xlsx)

AI Agents

Generate data from AI services like Google Gemini

ORM

Map custom objects and records to TDataItem structures

Basic Import Pattern

All TeeBI import classes follow a consistent pattern:
uses BI.DataItem, BI.CSV, BI.JSON, BI.DB;

var
  Data: TDataItem;

// From file
Data := TBICSV.FromFile('data.csv');

// From text
Data := TBIJson.ImportText('{"name":"value"}');

// From database
Data := TBIDB.From(SQLConnection1);

Common Features

Automatic Detection

Most importers automatically detect:
  • Data types - Integer, Float, Text, DateTime, Boolean
  • Headers - Column names from first row
  • Delimiters - CSV separators (comma, tab, semicolon)
  • Structure - Hierarchical relationships and master-detail

Progress Monitoring

var
  CSV: TBICSV;
  
CSV := TBICSV.Create;
try
  CSV.OnProgress := procedure(Sender: TObject; Percent: Integer; var Cancel: Boolean)
    begin
      ProgressBar1.Position := Percent;
      if UserClickedCancel then
        Cancel := True;
    end;
    
  Data := CSV.ImportFile('large_file.csv');
finally
  CSV.Free;
end;

Error Handling

All importers support custom error handlers:
CSV.OnError := function(Sender: TObject; const ErrorMsg: String): Boolean
  begin
    ShowMessage('Import error: ' + ErrorMsg);
    Result := True; // Continue import
  end;

Import from URLs

Use TBIURLSource to automatically detect and import from web URLs:
Data := TBIURLSource.From('https://example.com/data.json');

Multi-threaded Import

For large datasets, enable multi-threaded import:
var
  DB: TBIDB;
  
DB := TBIDB.Create(nil, True); // MultiThread = True
try
  DataArray := DB.Import(SQLConnection1);
finally
  DB.Free;
end;

File Filters

Get supported file extensions for open dialogs:
OpenDialog1.Filter := TBICSV.FileFilter.ToString;
OpenDialog1.Filter := TBIJson.FileFilter.ToString;

Next Steps

CSV Import

Learn about CSV import with delimiter detection and header parsing

Database Import

Connect to SQL databases and import entire schemas

Build docs developers (and LLMs) love