Connect to a Book¶
When reading/writing data to the active sheet, you don’t need a book object:
>>> import xlwings as xw >>> xw.Range('A1').value = 'something'
Python to Excel¶
The easiest way to connect to a book is offered by
xw.Book: it looks for the book in all app instances and
returns an error, should the same book be open in multiple instances.
To connect to a book in the active app instance, use
xw.books and to refer to a specific app, use:
>>> app = xw.App() # or something like xw.apps for existing apps, get the available PIDs via xw.apps.keys() >>> app.books['Book1']
|Book by (full)name||
When specifying file paths on Windows, you should either use raw strings by putting
r in front of the string or use double back-slashes like so:
Excel to Python (RunPython)¶
To reference the calling book when using
RunPython in VBA, use
Call Python with “RunPython”.
Check out the section about Debugging to see how you can call a script from both sides, Python and Excel, without
the need to constantly change between
xw.Book.caller() and one of the methods explained above.
User Defined Functions (UDFs)¶
RunPython, UDFs don’t need a call to
xw.Book.caller(), see User Defined Functions (UDFs).
You’ll usually use the
caller argument which returns the xlwings range object from where you call the function.