Contact Converter

Python Flask HTML CSS JavaScript CSV vCard Google Sheets Desktop (PyInstaller)

Contact Converter

A simple web application (with a desktop build) to convert sheet/CSV contact data into import-ready contacts. Import from Google Sheets or CSV files and export as CSV (Google Contacts format) or VCF (vCard).

🌐 Live Demo

Access the web version at: Contact Converter

✨ Features

  • Import from Google Sheets (published-to-web) or local CSV
  • Export formats:
    • CSV (Google Contacts compatible)
    • VCF (vCard)
  • Optional name prefix
  • Column selection by letter (e.g. A for name, B for phone)
  • Desktop version (packaged Python app)

🧩 Tech Stack

  • Backend: Flask (Python)
  • Frontend: Plain HTML / CSS / JavaScript
  • Data: CSV parsing, vCard generation
  • Packaging: PyInstaller (desktop release)

📝 How to Use

  1. Choose input method (Google Sheet URL or upload CSV)
  2. (Optional) Add a name prefix
  3. Specify column letters:
    • Name column (e.g. A)
    • Phone column (e.g. B)
  4. Select output format (CSV or VCF)
  5. Click Convert and download the file

🖥️ Desktop Version

Download the latest desktop release from the repo Releases section.

🛠️ Run Locally

# Clone the repository
git clone https://github.com/abduelmorsi/sheets-to-contacts-converter.git
cd sheets-to-contacts-converter

# (Optional) create virtual environment
python -m venv .venv
source .venv/bin/activate  # Windows: .venv\\Scripts\\activate

# Install dependencies
pip install -r requirements.txt

# Start Flask app
python app.py

The app will typically run on http://127.0.0.1:5000/

📦 Build Desktop (Example)

pip install pyinstaller
pyinstaller --onefile app.py
# Binary appears in dist/ (platform dependent)

📄 License

MIT licensed. See LICENSE in the source repository.

🚀 Future Ideas

  • Multiple phone columns support
  • Email & organization field mapping
  • Bulk vCard packaging as zip
  • Simple field auto-detection