openpyxl 写公式 问题。
如图所示,我想在D列中写下一个公式,。根据B列与C列 , 得到D 列的值 .暂时只知道单个单元格填入公式的方式:
ws["d1"] = "=(b1+c1)/b1" suchocolate 发表于 2020-6-22 16:33
暂时只知道单个单元格填入公式的方式:
有没有更加便捷的方法, 我可以让D列,整列都是这个公式?
而不是单个单元格的来。。 本帖最后由 suchocolate 于 2020-6-22 17:24 编辑
maxliu06 发表于 2020-6-22 16:46
有没有更加便捷的方法, 我可以让D列,整列都是这个公式?
而不是单个单元格的来。。
openpyxl貌似没有(openpyxl官网上没找到),你可以设置一个for循环解决。
另外如果你觉着麻烦可以用VBA,他支持列自动填充公式:Sub Macro1()
'
' Macro1 Macro
'
'
Range("D3").Select
Range("D3").Formula = "=(B1+C1)/B1"
Selection.AutoFill Destination:=Range("D3:D22")
End Sub suchocolate 发表于 2020-6-22 17:22
openpyxl貌似没有(openpyxl官网上没找到),你可以设置一个for循环解决。
另外如果你觉着麻烦可以 ...
vba不懂。。。
for 循环也想过了,但是这变量得写在公式里面,这不起作用呢。。 maxliu06 发表于 2020-6-22 17:30
vba不懂。。。
for 循环也想过了,但是这变量得写在公式里面,这不起作用呢。。
for item in range(3, 22):
num = str(item)
ws['d' + num] = "=(b%d+c%d)/b%d" % (item, item, item) 本帖最后由 txxcat 于 2020-6-22 18:01 编辑
把公式作为字符串写入到单元格里就可以了,我没理解错的话这样写:
from openpyxl import load_workbook
from openpyxl import Workbook
wb=load_workbook('test1.xlsx')
sheet_name = 'Sheet1'
ws=wb
for i in range(3,6):
ws['D'+str(i)] = '=(B%d+C%d)/B%d' % (i,i,i)
wb.save('test2.xlsx')
wb.close()
效果,看看是不是你需要的结果:
pandas库有
自定义一个函数,再利用pandas的apply方法应用进去
页:
[1]