Create a PostgreSQL tables from Excel files with automatic data type detection based on Sheetjs cell format
test_files | ||
.gitignore | ||
gen_test_files.py | ||
package-lock.json | ||
package.json | ||
pnpm-lock.yaml | ||
README.md | ||
requirements.txt | ||
SheetJSPG.js | ||
sql-types.js | ||
test.js |
Sheetjs to PostgreSQL Creating a Table Demo
A Node.js utility that intelligently converts Sheetjs worksheet
to PostgreSQL tables while preserving appropriate 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 requirements.txt
- Install Node.js dependencies:
npm install i
Setup
- Generate test_files:
python3 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