python Excel公式
公式以一個等號開始,可以配置單元格,讓它包含通過其他單元格計算得到的 值。在本節中,你將利用 openpyxl 模塊,用編程的方式在單元格中添加公式,就像 添加普通的值一樣。例如:?
>>> sheet['B9'] = '=SUM(B1:B8)'這將=SUM(B1:B8)作為單元格 B9 的值。這將 B9 單元格設置為一個公式,計算 單元格 B1 到 B8 的和。圖 12-5 展示了它的效果。?
為單元格設置公式就像設置其他文本值一樣。在交互式環境中輸入以下代碼:?
>>> import openpyxl >>> wb = openpyxl.Workbook() >>> sheet = wb.active >>> sheet['A1'] = 200 >>> sheet['A2'] = 300 >>> sheet['A3'] = '=SUM(A1:A2)' >>> wb.save('writeFormula.xlsx')單元格 A1 和 A2 分別設置為 200 和 300。單元格 A3 設置為一個公式,求出 A1 和A2 的和。如果在 Excel 中打開這個電子表格,A3 的值將顯示為 500。 也可以讀取單元格中的公式,就像其他值一樣。但是,如果你希望看到該公式 的計算結果,而不是原來的公式,就必須將 load_workbook()的 data_only 關鍵字參 數設置為 True。這意味著 Workbook 對象要么顯示公式,要么顯示公式的結果,不 能兼得(但是針對一個電子表格文件,可以加載多個 Workbook 對象)。在交互式環 境中輸入以下代碼,看看有無 data_only關鍵字參數時,加載工作簿的區別:?
>>> import openpyxl >>> wbFormulas = openpyxl.load_workbook('writeFormula.xlsx') >>> sheet = wbFormulas.active >>> sheet['A3'].value '=SUM(A1:A2)' >>> wbDataOnly = openpyxl.load_workbook('writeFormula.xlsx', data_only=True) >>> sheet = wbDataOnly.active >>> sheet['A3'].value 500這里,如果調用 load_workbook()時帶有 data_only=True,A3 單元格就顯示為 500,即公式的結果,而不是公式的文本。 Excel 公式為電子表格提供了一定程度的編程能力,但對于復雜的任務,很快 就會失去控制。例如,即使你非常熟悉 Excel 的公式,要想弄清楚=IFERROR (TRIM(IF(LEN(VLOOKUP(F7,Sheet2!$A$1:$B$10000,2,FALSE))>0,SUBSTITUTE (VLOOKUP (F7, Sheet2!$A$1:$B$10000, 2, FALSE), " ", ""),"")), "")實際上做了什么, 也是一件非常頭痛的事。Python 代碼的可讀性要好得多。?
?
總結
以上是生活随笔為你收集整理的python Excel公式的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 6-2 两顶点之前有路径吗?
- 下一篇: python爬虫的线程、进程、异步的基础