Create a PostgreSQL tables from Excel files with automatic data type detection based on Sheetjs cell format
Sheetjs to PostgreSQL
Convert Excel sheets to PostgreSQL tables with correct data types.
This demo project serves as a refernce implementation for SheetJS + PostgreSQL integration. For more details, vist the SheetJS Documentation.
Features
- Automatic data type detection from Excel columns
- Support various data formats:
- Numbers (integer and floating-point)
- Dates
- Booleans
- Text
- Handles special number formats (scientific notations, high precision)
- Clean column names for PostgreSQL compatibility
Prerequisites
- Node.js
- PostgreSQL (16)
- Python 3.x
Installation
- Install Python dependencies:
pip install -r test_files/requirements.txt
- Install Node.js dependencies:
npm install i
Setup
- Generate test_files:
python3 test_files/gen_test_files.py
- Configure PostgreSQL connection in
test.js
const client = new Client({
host: 'localhost',
database: 'SheetJSPG',
user: 'postgres',
password: '7509'
});
Run
node test.js
Test Files
The test suite includes various Excel files testing different data scenarios:
number_formats.xlsx: Various numeric formatsdate_formats.xlsx: Date handlingspecial_values.xlsx: Edge casesprecision.xlsx: High-precision numbersstring_formats.xlsx: Text handlingboolean_formats.xlsx: Boolean values
Type Mapping
- Excel dates → PostgreSQL
date - Booleans → PostgreSQL
boolean - High-precision numbers → PostgreSQL
numeric - Standard numbers → PostgreSQL
double precision - Text/other → PostgreSQL
text