Command line program that executes SQL queries and stores results in Excel files

pip install sqlexceller==0.1.1


SQL to Excel converter

Command line program that executes SQL queries and stores results in Excel files

  • Free software: Apache Software License 2.0


  • Support for PostgreSQL, MySQL, Oracle, MSSQL, and SQLite
  • Accepts multiple SQL query files
  • Each SQL query will be written into a different sheet
  • Parametrized queries
  • Parametrized output filename


To install all you need to do is run:

$ pip install --upgrade sqlexceller

Usage Help

usage: sqlexceller [-h] [-v] [--output OUTPUT] [--db_connection_info URL]
                   [--param PARAMS]
                   file [file ...]

sqlexceller tool
    The tool will execute SQL queries and generate an Excel file with the

positional arguments:
  file                  SQL Query file

optional arguments:
  -h, --help            show this help message and exit
  -v, --version         show program's version number and exit
  --output OUTPUT, -o OUTPUT
                        Output file
  --db_connection_info URL, -d URL
                        DB connection information as an URL in the form of
  --param PARAMS, -p PARAMS
                        Adds a parameter for the SQL queries. Parameter must
                        be specified as a key=value pair.  This argument can
                        be repeated as many times as necessary.

Available dialects and drivers are:
  - postgresql:
    - psycopg2
    - pg8000
  - mysql:
    - mysqldb
    - mysqlconnector
    - oursql
  - oracle:
    - cx_oracle
  - mssql:
    - pyodbc
    - pymssql
  - sqlite

There are some default parameters that will always be present:
  - DATE
  - DAY
  - YEAR

Usage examples:
  - Execute a simple query on a SQLite DB.
      sqlexceller query.sql -d sqlite:///example.db

  - Execute multiple queries with 2 different parameters and a custom output
    file on a PostgreSQL DB:

      Contents of query1.sql:
        SELECT *
        FROM stocks
        where transaction = :transaction;

      Contents of query2.sql:
        SELECT *
        FROM stocks
        where transaction = :transaction and product = :product;

      sqlexceller query1.sql query2.sql -p transaction=BUY -p product=HAT \
          -o "report :trans (:MONTH-:DAY).xlsx" \
          -d postgresql://user:password@localhost/mydatabase

      Generated file will be something like: "report BUY (10-16).xlsx"

Reporting an issue

If you've found an issue with sqlexceller here's how you can report the problem:

  • Preferred method is filing a bug on GitHub:
    1. Go to project's issue tracker on GitHub
    2. Search for existing issues using the search field at the top of the page
    3. File a new issue with information on the problem
    4. Thanks for helping make sqlexceller better
  • If you don't have a GitHub account and don't wish to create one you can just drop me an email.