PyXLL
*Motivation 微軟雖然邪惡, 但是Excel真的是好物, 他讓資料可視化, 很方便能做分析 在工程資料分析時, 比如我有一大筆資料, 想要取出每筆數值的 bit[15:10] 我當然能利用Excel內建的函數, 組合出我需要的功能, 但是就覺得有點難用 如果處理的方式很複雜, 拼湊出來的公式會很難讀 另外一個方案是使用Excel內建的VBA, 這個就能寫程式了, 也有bit-wise操作 利用VBA在後端做計算, 在前端使用Excel把資料漂亮的show出來 我曾經想要學VBA, 無奈寫C/Python習慣了, 看到VB的語法實在很不習慣 我投資不少時間在Python上, 如果能連結Excel和Python 就能達成後端使用Python, 前端使用Excel的理想境界... *Solution: PyXLL 1. Excel的XLL介面能呼叫外部的DLL, third-party能為Excel開發新的程式 2. PyXLL實做了Excel XLL介面, 他會喚醒Python interpretor 把來自Excel的資料, 放到Python domain 3. PyXLL也能把Python運算結果, 回傳給Excel使用 PyXLL是賣錢的工具, 不過試用不用錢, 只是開檔要等15秒看log 原理其實如上面所述, 喜歡的話也可以自己寫一個 http://www.pyxll.com/ *Install 1. 首先到他的網站抓安裝包, 然後解壓縮到任何地方, 假設是C:\PyXLL 2. 順便在網站裡, 把文件抓回來 3. 參考這個網站, 安裝PyXLL: http://www.codecho.com/execute-python-script-in-excel-using-pyxll/ 4. 閱讀C:\PyXLL\pyxll.cfg, 理論上不用改, 不懂的地方請參考文件 5. 編輯C:\PyXLL\examples\worksheetfuncs.py, 這裡就是主菜了 !! *worksheetfuncs.py -- basic_pyxll_function_1(), part1 廢話不多說, 這個範例宣告一個函數 basic_pyxll_function_1()