ExcelWebAddinFlask is a sample project showing how to combine the Microsoft Office Add-in platform with a Python Webserver.
Microsoft Office is used by over One billion users. ["Microsoft's Office Has over One Billion Users". Softpedia. SoftNews. July 10, 2012].
The Office Add-in platform allows you to publish your Add-ins to the Microsoft Store. From the store your addin can then be installed and used by over a billion users!
The goals of the tutorial is enable you to publish your own Add-in to the Office store along with a webSite users can browse to for help or additional services and information.
This tutorial is broken up into Lessons. Feel free to skip and move around based on how famliar you are. Also, if there are lessons or more details for existing lessons please leave comment or pull request.
video to deploy docker to Azure: Dan Taylor - From Zero to Azure with Python, Docker containers, and Visual Studio Code-I1cG1FRjFOQ
Install Prerequisites
Make your own Fork of the ExcelWebAddinFlask repo
[Need to talk about setting up virtual env] https://docs.python-guide.org/dev/virtualenvs/, https://docs.python.org/3/library/venv.html, to setup python -m venv env
f5 for local host
Run the Website Setup/SSL Certificate for localhost
SSL Options: Have ways of running SSL, nginx as reverse proxy in container, SSL in flask web, ngrok. ngrok http 5000 <= this will work with live reload changes
LiveReload (Issue withs this so may want ot move further )
What is an Office Add-in
The Addin Manifest
Sideloading an Addin into Excel Online
Show a Hello World Task Pane
Excel JavaScript API
Use the Excel Api in a Task Pane
Functions
Show a Dialog
Submit your addin to the Office store
Fame and Glory
WebSite Monitoring
Content Delivery Networks (CDNs)
Fabric UI
Localization
Excel Worksheet Permissions
Review why have Fonts
Clean up website to match what would want for store resources
Need to figure out if want FabricUI as part of samples (Maybe have a specific fabric UI example)?
Make JQuery links consistent and minimize to what need across webSite and samples
Clean up static from manifest once used by other Blueprints
determine what want to do with the default and what clients don't support <SourceLocation DefaultValue="{{ host_url }}addin.html"
Would also be nice to do an Agave with a static dialog/taskpane so it can be on CDN and then make a webService
call to get the data. Maybe should just do this?
deteremine best practice for javascript reload when make changes.