一、写入公式:
openpyxl在单元格中写入公式非常简单,就像写入普通文本一样,例如:
excel_formula = "=SUM(A1:A10)"
work_sheet.cell(row=2, column=3, value=excel_formula)
甚至是写入vlookup这样复杂的公式,那也没问题,例如:
excel_formula = "=VLOOKUP(B3,'2021-04-16'!$C$3:$F$12,4,FALSE)"
work_sheet.cell(row=2, column=3, value=excel_formula)
二、读取公式:
如果使用load_workbook()方法在无参数的情况下打开一个Excel文件,并读取某单元格的值;如果这个单元格本身的内容是公式,那么读取到的就是公式;如果这个单元格本身的内容是一个值,那么读取到的就是一个值。例如,单元“B2”的内容是“=SUM(A1:A10)”,那么读取这个单元格,读出来的内容就是:“=SUM(A1:A10)”。
work_book = openpyxl.load_workbook('test.xlsx')
work_sheet = work_book.get_sheet_by_name('Sheet1')
# 向单元格写入公式
work_sheet.cell(row=2, column=2, value="=SUM(A1:A10)")
# 保存
work_book.save('test.xlsx')
# 读取单元格的内容
cell_value = work_sheet.cell(row=2, column=2).value
print(cell_value)
执行打印的结果,就是:“=SUM(A1:A10)”
三、读取公式计算后产生的数值
必须使用load_workbook()方法的data_only=True参数,例如:
work_book = openpyxl.load_workbook('test.xlsx', data_only=True)
这时,再去读取带公式的单元格,读取的结果就是公式计算的结果了。