A modern Windows desktop application for converting Excel data to SQL INSERT statements
Features • Installation • Usage • Development • Contributing
- 🚀 High Performance Streaming — "Direct-to-Disk" pipeline capable of handling massive files (1M+ rows) with O(1) memory usage
- ⚡ Lazy Loading Preview — Instant UI response by only loading the first 100 rows for preview
- 📝 SQL Generation — Convert Excel rows to SQL INSERT statements instantly
- 🔄 Find & Replace — Transform data values on-the-fly during export stream
- 📋 One-Click Copy — Copy generated SQL to clipboard with a single click
- 💾 Export to File — Stream SQL output directly to
.sqlfiles without RAM spikes - 🔄 Auto-Update — Built-in update checker with automatic installation for Windows
- 🎨 Modern UI — Clean, responsive dark-themed interface built with Vanilla JS (No Framework overhead)
| Feature | Legacy Mode | Modern Streaming (v1.1+) |
|---|---|---|
| Memory Usage | O(N) - Loads full file | O(1) - Constant memory |
| Large Files | Crash on >500k rows | Pass (Tested with 1M+ rows) |
| UI Responsiveness | Frozen during export | Always Responsive |
Download the latest release for Windows from the Releases page:
| Platform | Download |
|---|---|
| Windows (x64) | sql-helper-windows-amd64.exe |
Note: macOS and Linux builds are planned. For now, you can build from source.
See the Development section for build instructions.
- Open Excel File — Click "Choose Excel File" to select your
.xlsxfile. - Select Sheet — Choose the worksheet containing your data from the modal if multi-sheet.
- Configure Options — Check Numeric Columns checkboxes to format numbers without quotes.
- Copy or Export — Use the Copy button for clipboard or Export button to stream directly to a
.sqlfile.
Your Excel file should follow a standard table structure:
- First Row: Column headers (used as SQL column names).
- Subsequent Rows: Data rows (transformed into individual VALUE tuples).
Example Data:
| ID | Name | Price | Status |
|---|---|---|---|
| 1 | Product A | 25.50 | Active |
| 2 | Product B | 40.00 | Inactive |
Generated SQL Output:
INSERT INTO products (ID, Name, Price, Status) VALUES
(1, 'Product A', 25.5, 'Active'),
(2, 'Product B', 40, 'Inactive');# Install Wails v3 CLI
go install github.com/wailsapp/wails/v3/cmd/wails3@latest# Clone repository
git clone https://github.com/hoangtran1411/sql-helper.git
cd sql-helper
# Install dependencies
go mod download
# Run in development mode (with hot reload)
make dev
# Build production binary for Windows
make build-windows| Command | Description |
|---|---|
make dev |
Run in development mode with hot reload (wails3 dev) |
make build |
Build production binary for current platform |
make build-windows |
Cross-compile for Windows AMD64 |
make test |
Run all Go unit tests |
make lint |
Run golangci-lint |
make coverage |
Generate and view test coverage |
make clean |
Remove build artifacts and coverage files |
sql-helper/
├── main.go # Wails v3 entry point
├── app.go # App struct with Wails v3 services
├── updater.go # Auto-update functionality (Windows)
├── internal/
│ ├── excel/ # Excel parsing logic (Excelize)
│ └── sql/ # SQL generation & formatting logic
├── frontend/ # Vanilla HTML/CSS/JS frontend
├── build/ # Build output & icons
└── .github/workflows/ # CI/CD (Lint, Test, Release)
Contributions are welcome! Please check our CONTRIBUTING.md for guidelines.
- Fork the Project
- Create your Feature Branch (
git checkout -b feature/AmazingFeature) - Commit your Changes (
git commit -m 'Add some AmazingFeature') - Push to the Branch (
git push origin feature/AmazingFeature) - Open a Pull Request
- Multiple database dialect support (PostgreSQL, SQLite, Oracle)
- Native macOS and Linux releases
- Dark/Light mode toggle
- Batch processing for multiple Excel files at once
- Custom SQL templates (INSERT IGNORE, REPLACE INTO, etc.)
This project is licensed under the MIT License - see the LICENSE file for details.
Created by Hoang Tran
⭐ Star this repo if you find it useful!
