鱼C论坛

 找回密码
 立即注册
查看: 1584|回复: 7

openpyxl 写公式 问题。

[复制链接]
发表于 2020-6-22 16:12:54 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
如图所示,  我想在D列中写下一个公式,。  根据B列与C列 , 得到D 列的值 .

1.png
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2020-6-22 16:33:20 | 显示全部楼层
暂时只知道单个单元格填入公式的方式:
  1. ws["d1"] = "=(b1+c1)/b1"
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-6-22 16:46:55 | 显示全部楼层
suchocolate 发表于 2020-6-22 16:33
暂时只知道单个单元格填入公式的方式:

有没有更加便捷的方法, 我可以让D列,整列都是这个公式?
而不是单个单元格的来。。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-6-22 17:22:10 | 显示全部楼层
本帖最后由 suchocolate 于 2020-6-22 17:24 编辑
maxliu06 发表于 2020-6-22 16:46
有没有更加便捷的方法, 我可以让D列,整列都是这个公式?
而不是单个单元格的来。。


openpyxl貌似没有(openpyxl官网上没找到),你可以设置一个for循环解决。

另外如果你觉着麻烦可以用VBA,他支持列自动填充公式:
  1. Sub Macro1()
  2. '
  3. ' Macro1 Macro
  4. '

  5. '
  6.     Range("D3").Select
  7.     Range("D3").Formula = "=(B1+C1)/B1"
  8.     Selection.AutoFill Destination:=Range("D3:D22")
  9. End Sub
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-6-22 17:30:26 | 显示全部楼层
suchocolate 发表于 2020-6-22 17:22
openpyxl貌似没有(openpyxl官网上没找到),你可以设置一个for循环解决。

另外如果你觉着麻烦可以 ...

vba  不懂。。。

for 循环也想过了,  但是这变量得写在公式里面,  这不起作用呢。。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-6-22 17:46:58 | 显示全部楼层
maxliu06 发表于 2020-6-22 17:30
vba  不懂。。。

for 循环也想过了,  但是这变量得写在公式里面,  这不起作用呢。。
  1. for item in range(3, 22):
  2.     num = str(item)
  3.     ws['d' + num] = "=(b%d+c%d)/b%d" % (item, item, item)
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-6-22 17:59:56 | 显示全部楼层
本帖最后由 txxcat 于 2020-6-22 18:01 编辑

把公式作为字符串写入到单元格里就可以了,我没理解错的话这样写:
  1. from openpyxl import load_workbook
  2. from openpyxl import Workbook
  3. wb=load_workbook('test1.xlsx')
  4. sheet_name = 'Sheet1'
  5. ws=wb[sheet_name]
  6. for i in range(3,6):
  7.     ws['D'+str(i)] = '=(B%d+C%d)/B%d' % (i,i,i)
  8. wb.save('test2.xlsx')   
  9. wb.close()
复制代码

效果,看看是不是你需要的结果:
批注 2020-06-22 180036.png
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-6-23 08:23:00 | 显示全部楼层
pandas库有
自定义一个函数,再利用pandas的apply方法应用进去
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-6-22 10:17

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表