About me • Startup (2014, Zurich):
– Mainly Python for Finance – Web based trading solutions (Interactive Brokers)
– Lots of Excel – Open-source: xlwings/ExcelPython
• Previously: 9yrs in Banking /Asset Mgmt • Background in Finance & Economics
2
The open-source Python/Excel Landscape
4
• Pywin32 • xlwings • ExcelPython
Read/Write Program/Interact • xlwt/xlrd • XlsxWriter • OpenPyxl
(3) Flexibility
8
Version
2.6 2.7 3.1 3.2 3.3 3.4
32-bit 64-bit
32-bit 64-bit
2003 2010 2011 (Mac) 2013 2016 (Win + Mac*)
Architecture Version Architecture
*under development
(4) Simplicity
9
>>> from xlwings import Workbook, Range
>>> wb = Workbook() >>> Range("A1").value = my_variable
• Strings • Numbers • DateTime • Lists (nested) • NumPy arrays • Pandas DataFrames • Blaze Data container (planned)
(5) Works back and forth
10
>>> wb = Workbook() >>> Range("A1").value = my_variable
Sub MyFunction() RunPython ("import mymodule;mymodule.myfunction()") End Sub
(6) ExcelPython for UDFs (Windows only)
11
from xlpython import xlfunc import numpy as np
@xlfunc def matrix_mult(x, y): x = np.atleast_2d(np.array(x)) y = np.atleast_2d(np.array(y)) return x.dot(y)
{=matrix_mult(A1:B2,D1:E2)}
Access from Excel via Array Formula:
Write User Defined Functions in Python:
What’s next?
• Add-in • Full integration of xlwings/ExcelPython • Add more features: matplotlib etc. • Someday…
– Google Sheets – LibreOffice/OpenOffice
13
julia> using PyCall julia> @pyimport xlwings as xw julia> xw.Workbook() julia> xw.Range("A1", asarray=true)[:table][:value]
Use xlwings from Julia
14
>>> from xlwings import Workbook, Range
>>> wb = Workbook() >>> Range("A1", asarray=True).table.value
Top Related