TabularJS

Convert Any Spreadsheet to JSON
with a Single Function Call

Parses XLSX, CSV, ODS, and 13+ other formats, converting them into clean JSON.
Works in Node and the browser.

✓ Zero dependencies✓ MIT License✓ TypeScript support
Compatible with:JavaScript — integration guideReact — integration guideAngular — integration guideVue — integration guide

From Any File to Clean JSON in 4 lines

Feed in any spreadsheet format — your code stays the same.

upload.jsjs
import tabularjs from 'tabularjs';

// Works with any format — .xlsx, .ods, .csv, .xls...
input.addEventListener('change', async (e) => {
  const { worksheets } = await tabularjs(e.target.files[0]);
  const [headers, ...rows] = worksheets[0].data;

  // Clean, structured data — ready to use
  renderTable(headers, rows);
});
✓ XLSX, XLS, ODS, CSV, TSV + 11 more✓ Same output, across all formats✓ Browser & Node.js

Parsing Spreadsheets Shouldn't Be Hard.

Most Excel parsing libraries add extra dependencies and license checks. Many user-submitted formats also require special handling, which can increase bundle size and slow down builds.

TabularJS supports 16+ spreadsheet formats with a single function and returns JSON. No dependencies, no complicated steps, and nothing extra in your node_modules.

What You Get

Stop Writing Format-Specific Parsers.

A single function supports Excel (.xls, .xlsx), OpenDocument (.ods), CSV, TSV, Lotus 1-2-3, SYLK, DIF, dBase, XML 2003, HTML tables, and more.

Keep Formulas Without Recalculating

Formulas from XLS, XLSX, ODS, SYLK, XML 2003, and HTML files are preserved intact. You don't need to decode or recreate them. They're ready to use in your JSON.

Ship Faster, With Nothing to Audit.

With zero dependencies, you have no extra packages in your supply chain. You don't need to review third-party code, so audits are simpler.

Same JSON Output, Across All Formats.

Regardless of the format you submit, the JSON structure will be the same. You don't need to write format-specific code. Just use the output as needed.

Styles & Merged Cells

For supported formats (XLSX, ODS), cell formatting, merged ranges, and comments are included automatically. No additional processing required.

Multiple Worksheets

If your spreadsheet has more than one tab, each tab will appear in the output array in the same order. You can iterate through and use any tab you want.

Metadata Included

TabularJS extracts column types, labels, and document-level metadata from formats that include them.

output.jsonjson
{
  "worksheets": [
    {
      "name": "Sheet1",
      "data": [
        ["Name",  "Department",  "Salary"],
        ["Alice", "Engineering", 95000],
        ["Bob",   "Marketing",   72000]
      ],
      "styles": { "A1": { "bold": true } },
      "mergeCells": { "A5:C5": 1 },
      "comments": { "B2": "Reviewed" }
    }
  ]
}

Thinking About Migrating from SheetJS?

If you need an MIT license, zero dependencies, and a simpler API, TabularJS is worth a look.

No License Surprises

TabularJS uses the MIT license and will continue to do so. You can use it in both commercial and open-source projects without needing to check the license with every new release.

Nothing in Your node_modules

With no transitive packages, there are no unexpected npm audit warnings from code you didn't write. A single package, pure JavaScript.

upload.htmlhtml
<script src="https://cdn.jsdelivr.net/npm/jspreadsheet-ce/dist/index.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/tabularjs/dist/index.js"></script>

<div id="spreadsheet"></div>
<input type="file" id="fileInput" />

<script>
document.getElementById('fileInput')
  .addEventListener('change', async (e) => {
    const file = e.target.files[0];
    const result = await tabularjs(file);
    jspreadsheet(
      document.getElementById('spreadsheet'),
      result
    );
  });
</script>
Integration

Direct Integration with JS Spreadsheets

TabularJS output works directly with Jspreadsheet. You can import any spreadsheet file and quickly display it as an editable, real-time online spreadsheet. It's compatible with Jspreadsheet CE (open source) and Jspreadsheet Pro.

Start Parsing in Under a Minute

MIT License. Install from NPM or drop the CDN script into any HTML page.

bash
npm install tabularjs

JavaScript Components

TabularJS is part of a suite of JavaScript tools for building web applications.