XL++ Documentation

Complete reference for every feature — import, transform, analyse, visualise, and export your Excel data, powered by AI.

📖

Overview

XL++ is a Microsoft Excel add-in powered by an in-memory DuckDB engine and AI providers including Claude, OpenAI, Gemini, and local offline models via Ollama.

It extends Excel to handle millions of rows, automate recurring workflows, build interactive dashboards, and generate AI-powered PowerPoint presentations — all from within the familiar Excel ribbon.

💡 Config is stored in the workbook — share the .xlsx and all XL++ settings travel with it.
🎯

Ribbon Layout

All XL++ features are accessible from the XL++ tab in the Excel ribbon.

GroupButtonsPurpose
From FileGet Data, ConfigImport from CSV / Excel / txt
From DatabaseGet Data, ConfigImport from SQL / CSV databases
DataSheetProcess Config, Refresh All, Refresh ActiveAutomate data sheet queries
GraphExcel Chart, XL++ ChartCreate charts
DashboardRefresh, Slicer, ConfigBuild interactive dashboards
ExportExcel, PowerPoint, Draft/SendExport and email data
Task / SchedulerTask, SchedulerAutomate and schedule workflows
SharePointUpload, ConfigPush workbooks to SharePoint
ML Tool BoxData Profile, Cleaner, Duplicates, SQL, Pivot, AI ChartAI-powered data tools
SettingsLock/Unlock, AI Settings, Help, AboutConfigure XL++
📋

System Sheets

XL++ creates and manages several system sheets in your workbook. These are prefixed with XL_ and should not be deleted.

SheetPurpose
XL_ProcessDataSheet SQL queries and configuration
XL_PivotSaved Pivot Builder configurations
XL_AdvSQLOutput of Advanced SQL queries
XL_ExportExport configuration
SheetName_ProfileGenerated by Data Profiler
SheetName_PivotGenerated by Pivot Builder
💡 Config is stored in the workbook — share the .xlsx and all settings travel with it.
📂

Import from File

Import data from CSV, Excel (.xlsx/.xls), or .txt files with automatic schema detection, column editing, grouping, and unique key definition.

Steps

1
Click Import Config in the From File group on the XL++ ribbon.
2
Click Browse — File Path, Sheet Name, Range, and Column Headers are all auto-detected.
3
Review Columns in File. Click Select All or pick individual columns. Press F2 on a column to rename or add IIF() logic.
4
Optionally drag columns to Group By Column or Unique Key Combination.
5
Enter an optional Condition (WHERE / ORDER BY). Click Update, then Get Data.

Key Fields

File PathBrowse to select CSV, XLSX, or TXT file
Sheet NameAuto-detected from file
RangeAuto-detected data range
Columns to ImportSelect which columns to pull in
Group By ColumnAggregate rows by this column
Unique KeyPrevent duplicate rows on refresh
Destination SheetWhere results are written in Excel
ConditionWHERE / ORDER BY clause
🗄️

Import from Database

Import from SQL databases or CSV folder collections with a visual Query Builder that auto-generates SQL by clicking column names.

Supported Sources

  • SQL Server
  • Oracle
  • PostgreSQL
  • MySQL
  • CSV Folder collections
  • Excel files

Steps

1
Select DB / File Type from the dropdown.
2
Browse to select your database or folder path. Enter credentials if required.
3
Click Query Builder — all available tables and columns are shown. Click column names to add them to the SELECT. SQL is auto-generated.
4
Add WHERE conditions to filter rows. Use GROUP BY for aggregation.
5
Click Update to save, then Get Data to run.
💡 Query Builder supports up to 3-table JOINs via the GUI. For more complex joins, write SQL directly in the query window.
⚙️

Process Automation / DataSheet

Link Excel sheets to SQL queries and refresh on demand. DataSheets are the core of XL++ automated reporting — write the SQL once, refresh at any time.

Steps

1
Click Process Config on the XL++ ribbon.
2
Select an existing DataSheet from the dropdown or click Insert New to create one.
3
Write your SQL in the query window, or click Query Builder to build it visually.
4
Set Refresh Method — Columns at a time or Rows at a time (better for very large datasets).
5
Click Update to save. Use Refresh Active or Refresh All on the ribbon to run.
💡 DataSheets can join data from multiple imported sheets using DuckDB SQL. All imported sheets are available as tables.
📊

Dashboard & Slicers

Build interactive dashboards with data tables and dynamic filter slicers. Source from cell ranges or SQL joins across multiple sheets.

Steps

1
Select your destination cell in Excel (where the dashboard will be placed). Click Dashboard Config.
2
Use Select Range tab for a cell range source, or Use Query tab for a SQL join across sheets.
3
Add columns from Available to Selected Columns. Set Group By, Sort, First N Rows, and WHERE filter as needed.
4
Click Update then Refresh Dashboard on the ribbon.
5
Click Slicer on the ribbon → select the column to filter by → clicking a slicer value refreshes the dashboard automatically.
💡 Use the 🔍 magnifying lens in the slicer to filter by value, e.g. >100 or starts with "A".
📈

Excel Charts

Create dynamic Excel charts with named range support for automatic updates as data grows.

Steps

1
Select your destination cell in Excel — the chart is placed at that position.
2
Click Excel Chart on the ribbon. Set your Data Range (e.g. Sheet1!A1:D20). Click Load Fields.
3
Assign X Axis (category column) and Y Axis (numeric columns to plot).
4
Choose Chart Type from the dropdown (xlColumnClustered, xlLine, xlPie, etc.).
5
Tick Add Name Range to make the chart update automatically as rows are added. Click Create Chart.
💡 Use Switch Axis to swap X and Y values if the chart looks transposed.
💾

Export to Excel

Export a cell range from the current workbook into a new or existing Excel file.

Steps

1
Click Export Config on the ribbon.
2
Set Source Sheet and Source Range.
3
Set Destination File Path. For a new file just type the filename — no need to create it first. Set Destination Sheet and Starting Cell.
4
Click Update to save, then Export to Excel on the ribbon to run.
📽️

Export to PowerPoint

Export Excel tables or charts into PowerPoint slides with inch-based positioning. Multiple items can be placed on the same slide.

Steps

1
Click PowerPoint Config on the ribbon.
2
Set Excel File Path, Sheet Name, and Range of the table or chart to export.
3
Tick Is Chart? if exporting a chart. Set Destination PPT File, Slide Number, and position in inches (Left, Top, Width, Height).
4
Click Update, then Export to PowerPoint on the ribbon.
💡 Use the same slide number with different positions to place multiple tables and charts on one slide.
✉️

Draft & Send Email

Draft and send emails via Outlook with Excel data and AI-generated body text.

Steps

1
Click Email Config. Set To, Cc, Bcc, and Subject.
2
Write the email body manually, or click AI Draft — describe what you need and the AI generates it using your active provider.
3
Set Attachments — attach a sheet range as Excel or PDF.
4
Tick Send Individually to send a separate email to each recipient. Click Update, then Draft/Send on the ribbon.
💡 You can reference Excel cell values in subject or body using named ranges for dynamic, data-driven emails.
⏱️

Task & Scheduler

Build sequences of XL++ operations (Import → Process → Export → Email) that run in order with one click, or schedule them to run automatically.

Task

1
Click Task on the ribbon. Select an existing task or create a new one.
2
Add CONFIG items to the TASK list — each item is an XL++ operation (Import, Process, Export, Email etc.) that runs in sequence.
3
Click Execute Task to run all steps in order.

Scheduler

1
Click Scheduler on the ribbon.
2
Select an existing Task to schedule. Set the frequency (daily, weekly, hourly) and time.
3
Click Schedule — the task will run automatically at the set time, even when Excel is closed.
☁️

SharePoint Upload

Upload Excel workbooks directly to SharePoint document libraries from inside Excel.

1
Click SharePoint Config. Enter your Site URL, Library name, and credentials.
2
Click Update to save.
3
Click Upload on the ribbon to push the workbook to SharePoint.
🔍

Data Profile

Automatically analyse every column — data types, quality score, statistics, and outliers. Always run Data Profile before Data Cleaner.

1
Click ML Tool Box → Data Profile. Select your data range (include the header row).
2
XL++ creates a SheetName_Profile sheet automatically with the full analysis.

What the profile shows

Column TypeMetrics
NumericMin, Max, Mean, Std Dev, Skew, Kurtosis, Outliers (IQR + Z-Score), Missing %
Text (VARCHAR)Distinct count, Top Values, Mode, Null count, Missing %
DateMin date, Max date, Null count, Missing %
⚠️ Columns with more than 50% missing values are highlighted red — prioritise cleaning those first.
🧹

Data Cleaner

Fix missing values with a per-column strategy. Run Data Profile first to understand your data quality.

1
Click ML Tool Box → Data Cleaner. Select your data range.
2
Click Load — all columns appear with their missing % shown.
3
Choose a strategy per column: Mean / Median / Mode / Custom Value / Drop Row.
4
Click Apply — cleaned data is written back to the sheet.
💡 Red rows have >50% missing — consider dropping those columns rather than imputing.
🔄

Remove Duplicates

Remove duplicate rows with full control over per-column aggregation — not just a simple delete.

1
Select your data range. Click ML Tool Box → Remove Duplicates.
2
Tick Is Key on the columns that identify a unique record (e.g. Order ID, Customer ID).
3
For numeric columns choose an aggregation: SUM, AVG, MIN, MAX, COUNT. For text columns: Keep First, Keep Last, COUNT.
4
Click Execute to remove duplicates.
💻

Advanced SQL

Run SQL directly against your live Excel sheets using the DuckDB engine. All sheets are auto-loaded as tables on open.

1
Click ML Tool Box → Advanced SQL.
2
Write your SQL in the editor. Sheet names with spaces become underscores (e.g. Sales DataSales_Data).
3
Click Run — results appear in the XL_AdvSQL sheet.

Supported syntax

  • SELECT, WHERE, GROUP BY, ORDER BY, LIMIT
  • WITH (CTEs) for multi-step queries
  • PIVOT and UNPIVOT for reshaping data
  • Window functions: ROW_NUMBER(), RANK(), LAG(), LEAD()
  • PERCENTILE_CONT for median and percentiles
  • TRY_CAST for safe type conversion
  • REGEXP_MATCHES for pattern matching

Examples

-- Aggregate by category SELECT Category, SUM("Sales Price") AS Revenue FROM SalesData GROUP BY Category ORDER BY Revenue DESC
-- CTE + window function WITH ranked AS ( SELECT *, RANK() OVER (PARTITION BY Category ORDER BY "Sales Price" DESC) AS rnk FROM SalesData ) SELECT * FROM ranked WHERE rnk <= 3
-- Join two sheets SELECT a.Name, b.Revenue FROM Customers a LEFT JOIN Sales b ON a.ID = b.CustomerID
💡 Always wrap column names containing spaces in double quotes: "Sales Price"
🔀

Pivot Builder

Build pivot tables with AI prompts or manual drag-and-drop field assignment.

Option A — AI Generate

1
Select your table from the dropdown.
2
Type a natural language prompt — e.g. "show total sales and profit by category and payment method".
3
Click Generate — AI builds the SQL. Review the Generated SQL box and edit if needed.
4
Click Preview (top 50 rows) then Run to Sheet.

Option B — Manual

1
Drag dimension/text/date columns to ROWS. Drag one text column to COLUMNS (optional pivot axis).
2
Drag numeric columns to VALUES with aggregation: SUM / AVG / COUNT / MIN / MAX.
3
Add Filter (WHERE clause) and Order By. Click Run to Sheet.
💡 Click Join Tables to combine two sheets before pivoting. Saved pivots persist in XL_Pivot — use Prev/Next arrows to reload them.
🤖

AI Chart Builder

Build Excel charts by describing what you want in plain English. AI Edition

1
Select your destination cell in Excel — the chart is placed there.
2
Click AI Chart. Select your data table from the dropdown.
3
Describe the chart: "bar chart showing total sales by category sorted descending".
4
Click Run — the chart is built at your destination cell.
💡 Be specific: mention chart type, columns, sorting, and grouping for best results.
💬

AI Assistant

A floating chat panel that appears automatically when you open Excel. Guides you through every XL++ feature with contextual tips and action buttons.

FeatureDescription
Contextual tipsStep-by-step guidance when you open any XL++ tool
Action buttonsOpen XL++ tools directly from the chat panel
Provider selectorSwitch AI provider per session
FeedbackYes/No rating teaches the agent what works
💡 The AI Agent connects to your chosen AI provider (Claude, OpenAI, Gemini, or Ollama) — configure it in AI Settings first.
🔧

AI Settings

Configure the AI provider used by Pivot Builder, AI Chart, Email Draft, AI Deck Agent, and the AI Assistant.

1
Click XL++ → AI Settings on the ribbon.
2
Select your Provider: Claude, OpenAI, Gemini, or Ollama.
3
Enter your API Key. For Ollama, leave blank.
4
Click Save. Settings take effect immediately — no restart needed.
🔒 Your API key is stored locally on your machine and is never transmitted to XL++ servers.
🦙

Offline AI — Ollama + phi3:mini

Run all AI features completely offline after a one-time model download. No internet, no API key, no cost.

1
Download and install Ollama on your PC.
2
Open Command Prompt and run:
ollama pull phi3:mini
This downloads the phi3:mini model (~2GB, one-time only).
3
In XL++, go to AI Settings → Offline. Click Offline AI Setup to verify Ollama is running. Select Ollama as provider and leave the API key blank.
4
All AI features now run locally. The model runs on port 8080 on your machine.
💡 phi3:mini works well for SQL generation and chart descriptions. For complex multi-slide deck plans, Claude or GPT-4o produces better results.
🔐

Lock / Unlock

Password-protect XL++ configuration sheets to prevent accidental edits by other users. Data sheets remain fully editable.

1
Click Lock/Unlock on the XL++ ribbon.
2
To lock: enter a password and click Lock. All XL_ config sheets are protected.
3
To unlock: enter the same password and click Unlock. Config sheets become editable again.
💡 Data sheets (your imported data) are never locked — only XL++ config sheets are protected.
ℹ️

About XL++

XL++ extends Excel — compressing time to outcomes, minimising user touchpoints, and reducing errors when working with data from Text, Excel, Databases, and semi-structured sources.

Our Founders

Sree KuchibhatlaFounder — Product & Technology
20+ years financial analytics
sree@xlplusplus.com
Vikram BharwadaFounder — Business & Strategy
vikram@xlplusplus.com

Contact