码迷,mamicode.com
首页 > 其他好文 > 详细

openpyxl 使用公式

时间:2021-05-23 23:04:01      阅读:0      评论:0      收藏:0      [点我收藏+]

标签:open   单元格   log   方法   client   class   users   注意   span   

查看所有公式

from openpyxl.utils import FORMULAE
print(len(FORMULAE))
print(FORMULAE)

# 公式是否存在
print(‘x‘ in FORMULAE) # 返回为 True

 

from openpyxl import Workbook

wb = Workbook()
sheet = wb.active
sheet[a1] = 销量A
sheet[B1] = 销量B
sheet[C1] = 总销量
sheet[a2] = 10
sheet[a3] = 15
sheet[b2]= 20
sheet[b3] = 25

for i in range(2,4):
    cell_a = A+str(i)
    cell_b = B+str(i)
    cell_c = C+ str(i)
    sheet[cell_c] = =sum({},{}).format(cell_a,cell_b)
    
wb.save(new_test.xlsx)

显示公式值

wbook = load_workbook(filename=formula_1.xlsx,data_only=True)
# load_workbook方法中涉及到较多的属性,包括read_only,keep_vba,guess_types,data_only等。
# data_only用于读取cell中的值,当单元格中的值是一个公式的时候,会返回计算到的结果。
# data_only 控制具有公式的单元格是否具有公式(默认值)或上次Excel读取工作表时存储的值。

我们运行替换后的代码的后,打印cell_C2值的时候是为却为None,这是为什么呢?查询相关的资料的解释可以参考:

https://blog.51cto.com/antidarkness/1974684

那么这个问题该怎么解决呢?我们可以使用win32库进行打开关闭的操作之后,在使用openpyxl打开文件传入data_only=True即可,使用win32打开保存的代码如下:(注意filaname需要传一个全路径)

from win32com.client import Dispatch
filename
= rC:\Users\LEGION\Desktop\tweets_code\formula_1.xlsx xlApp = Dispatch(Excel.Application) xlApp.Visible = False xlBook = xlApp.Workbooks.Open() xlBook.Save() xlBook.Close()

 

openpyxl 使用公式

标签:open   单元格   log   方法   client   class   users   注意   span   

原文地址:https://www.cnblogs.com/Teyisang/p/14727517.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!