Connect your data to Excel with Python.

Gridarrow is the missing server for Excel. We host and run Python scripts that connect to your data and send it to Excel in real-time. Create live dashboards and reports with the tool that everyone knows.

Bring your spreadsheets to life

It's easy to get real-time data into your spreadsheets

Just drag and drop a grid from the console to get the data flowing. Multiple users can connect to the same script, so everyone sees the same data.

Infinite possibilities

Gridarrow integrates Excel with everything

We have pre-written scripts for a huge range of services ready to go. Here are just a few examples:

Update Excel with user traffic data from Google Analytics in real-time

Get Stripe payment data into Excel for in-depth analysis

Subscribe to Redis pub/sub channels and update Excel

Add Twitter tweets and followers to an Excel spreadsheet

Monitor Amazon EC2 usage with a dashboard in Excel

Integrate Salesforce with data in your spreadsheets

Integrate a Slack chatbot with data in your spreadsheets

Query MySQL and send results to Excel

Receive messages from Twilio and add them to a spreadsheet

Scrape the web with Python's Requests or Pandas libraries

Monitor Amazon Products real-time in an Excel spreadsheet

Create Excel dashboards from New Relic monitoring

And more... With the power that only a real programming language provides, you can mix and match these services, add entirely new ones, and customize things exactly as you need. It's easier than you might think, and we're always here to help!

Unlimited power

Python is awesome

We provide a simple API for sending data to Excel from Python - the Grid. Update the Grid with a value like so: grid[row, column] = value and the data immediately appears in all users spreadsheets.

The Python environment is unrestricted, and you can pip install any dependencies you need to get the job done.

from gridarrow import Arrow

arrow = Arrow(__name__)

grid = arrow.grid("ga_active_users", rows=10,
                  columns=["Desktop", "Mobile"])

def get_ga_report():
    # build analytics service not shown
    return analytics.get(ids=view_id,
                         metrics='rt:pageViews',
                         dimensions='rt:deviceCategory')

# do something every 30 seconds
@arrow.on_interval(seconds=30)
def on_interval():
    grid[0:10, ["Desktop", "Mobile"]] = get_ga_report()