【问题标题】:Python xlsxWriter formula name errorPython xlsxWriter 公式名称错误
【发布时间】:2015-05-15 23:57:23
【问题描述】:

我正在尝试创建一个包含两个工作表的 Excel 工作簿 - 我使用 xlsxwriter 在第一个工作表上输入数据,然后在第二个工作表上对该数据进行排名。当我打开工作簿时,队伍有一个 Excel 名称?错误。如果我点击编辑栏中公式的末尾,它计算正确,所以我不认为公式不正确..我怀疑它可能是某种操作排序?我的 excel 表设置为自动计算公式...我在网上可以找到的唯一类似问题是 xlsxwriter: add formula with other sheet in it,但我不知道解决方案是什么(如果它实际上不是法语到英语问题) 这是我的代码的简化版本

import xlsxwriter
wb = xlsxwriter.Workbook('C:\Python33\ScoreTry.xlsx')
ws1 = wb.add_worksheet('RawScores')
ws2 = wb.add_worksheet('RankScores')
ws1.write(0,0,32)
ws1.write(1,0,39)
ws1.write(2,0,15)
for i in range (0,3):
    x =  'IF(isblank(RawScores!A'+str(i+1)+'),"",RANK.AVG(RawScores!A'+str(i+1)+',RawScores!A$1:A$100,0))'
    ws2.write_formula(i,0,x)
wb.close()

我的 RankScores 工作表以三个#NAME 开头?错误而不是排名,直到我单击每个输入。任何想法都非常感谢!

【问题讨论】:

    标签: python xlsxwriter


    【解决方案1】:

    RANK.AVG() 是在原始 XLSX 文件格式规范之后作为“扩展”添加的函数。在Microsoft documentation 中定义了这些函数的列表。

    因此,虽然公式显示为RANK.AVG(),但它在文件中存储为_xlfn.RANK.AVG()(如上一个文档中所列)。

    如果您更改公式以使用函数的前缀版本,它应该可以工作。

    这是一个笨拙但目前不可避免的解决方法(模块中没有一些同样笨拙的解决方法)。文档的write_formula() 部分记录了它的价值。

    【讨论】:

      猜你喜欢
      • 2021-05-08
      • 1970-01-01
      • 2014-10-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-05-03
      • 1970-01-01
      相关资源
      最近更新 更多