InfoTable Import Export Extension

A single, lightweight Resource that lets you import export data from InfoTables ↔︎ Excel / CSV through a ThingWorx FileRepositoryThing. Note that it does support building new workbooks, as well as appending new sheets to existing.


1. Installation #

  1. Download the extension (.zip) and import it through Composer ▸ Import/Export ▸ Extensions .
  2. Note that if you are updating from a previous version, restarting ThingWorx Foundation is required.

Minimum platform : ThingWorx 9.7, Java 21+.

2. Service reference #

ServiceDirectionPurpose
ExcelToInfoTableExcel ➜ InfoTableLoad an entire sheet.
ExcelToInfoTableWithRangeExcel ➜ InfoTableLoad a row/column slice, supports open-ended ranges (A2:C*).
InfoTableToExcelInfoTable ➜ ExcelCreate a new workbook or add / replace a sheet in an existing one.
InfoTableToCsvInfoTable ➜ CSVWrite UTF-8 CSV (optional header).

2.1. Common parameters #

NameTypeNotes
repositoryTHINGNAMEMust reference a FileRepositoryThing.
filePathSTRINGPath inside the repository root (reports/2025/sales.xlsx).
sheet / sheetNameSTRINGTarget sheet (case-sensitive like Excel).
dataShapeINFOTABLEOnly for import: an empty InfoTable with the right DataShape.

2.2. Excel ➜ InfoTable #

ExcelToInfoTable

JavaScript
var table = Resources.InfoTableImportExportUtilities.ExcelToInfoTable({
    repository: "MyRepo",
    filePath: "staging/inventory.xlsx",
    dataShape: DataShapes.InventoryShape.CreateValues(), // empty
    sheet: "2025-Q1"
});

ExcelToInfoTableWithRange Range grammar

  • A2:C10– explicit rows.
  • A2:C– up to last used row.
  • A2:C*– same as above, a bit clearer.
  • A2– single column (A) from row 2 to last row.
JavaScript
var slice = Resources.InfoTableImportExportUtilities.ExcelToInfoTableWithRange({
    repository: "MyRepo",
    filePath: "staging/inventory.xlsx",
    dataShape: DataShapes.InventoryShape.CreateValues(),
    range: "A2:C*",          // dynamic
    sheet: "2025-Q1"
});

2.3. InfoTable ➜ Excel #

Creates exports/inventory.xlsx if it doesn’t exist, or overwrites / adds the sheet.*

JavaScript
Resources.InfoTableImportExportUtilities.InfoTableToExcel({
    infotable: Things.Warehouse.GetInventory(),
    repository: "MyRepo",
    filePath: "exports/inventory.xlsx",
    sheetName: "Latest Snapshot"
});

2.4. InfoTable ➜ CSV #

JavaScript
Resources.InfoTableImportExportUtilities.InfoTableToCsv({
    infotable: Things.Warehouse.GetInventory(),
    repository: "MyRepo",
    filePath: "exports/inventory.csv",
    withHeader: true               // default = true
});

CSV is always UTF-8; directories are created automatically.

Was this article helpful?

  • Happy
  • Normal
  • Sad

Contact Support

Support form is only accessible for logged in users.
IQNOX Logo
Log In

Welcome back!

Remember me
Don't have an account? Sign Up

Schedule a Demo

Schedule a personalized demo to explore how our widgets can streamline your workflow, enhance efficiency, and drive better results.
Preferred Date / Time (US Eastern time)
We’ll do our best to accommodate your preferred date and time. If it’s not available, our team will reach out to find a time that works for everyone.
Consent