python - 在 openpyxl 中使用 Translator 复制公式
问题描述
我需要将公式从以编程方式确定的列复制到相邻列,并且需要将公式单元格引用与列一起“移动”。例如,在单元格 E2 中是公式='Copy ATDs'!B60
,我需要将公式复制到单元格 F2='Copy ATDs'!C60
文档中的示例如下(原文如此):
>>> from openpyxl.formula.translate import Translator
>>> ws['F2'] = "=SUM(B2:E2)"
>>> # move the formula one colum to the right
>>> formula = Translator("=SUM(B2:E2)", "G2")
'=SUM(C2:F2)'
我理解这意味着如果将第二个参数移动一列,则 Translator 函数将返回一个由一列转置的公式。
我正在使用的代码如下:
new_cell_ref = ws_dt.cell(column=source_col, row=r).offset(row=0, column=1).address()
ws_dt.cell(column=new_col, row=r).value = \
Translator(ws_dt.cell(column=source_col, row=r).value, \
new_cell_ref.column + str(new_cell_ref.row)).tokenizer.formula
Translator 函数似乎并不关心第二个参数是什么。它始终返回原始公式而不翻译任何内容。请帮助我理解我做错了什么。
解决方案
推荐阅读
- node.js - return 不会终止一个 promise/then 链
- marklogic - 将 CORB 与 Marklogic 8 一起使用
- javascript - 在将文件写入客户端磁盘时从 blob 创建/对象 URL 释放内存
- networking - 在 Gephi 0.9.2 中更改边缘箭头大小
- sql - SQL:Union 中的 Group BY 与 Union All 中的 Group BY
- javascript - 用户表单数据和数据库数据对比MongoDB
- eloqua - 如何使用批量 API 从 Eloqua 导出所有外部活动
- python - 这里导入错误的确切原因是什么?
- python - 如何从 if 语句中创建永久更改?
- stripe-payments - Stripe - 处理来自同一 IP 的多笔付款