python表格函数公式大全_python – xlsxwriter:在其中添加其他工作表的公式

我尝试使用xlsxwriter

python插件创建一个XLSX文件.

在这个XLSX中,我有2张:

>分析:包含带有信息的表格

>统计:包含一些信息和2个公式

这两个公式是:

=NBVAL(Analyse!C:C)-1

=NB.SI(Analyse!D:D;"To change")

我的问题是当我打开生成的文件时,我有一个错误.公式不起作用.如果我编辑公式并按Enter键,则可以正常工作.

我的代码:

shInfo = self.__workbook.add_worksheet("Stat")

shInfo.activate()

information = self.__workbook.add_format({'bg_color': '#BFBFBF',

'font_name': 'Courier New'})

shInfo.write('G3','=NBVAL(Analyse!C:C)-1',information)

shInfo.write('G5','=NB.SI(Analyse!D:D;"To change")',information)

当我打开XML错误报告时.我有这个:

error056160_04.xml

Des erreurs ont été détectées dans le fichier « L:\UNMS\InputBEB\Output\UNMSViewer\public_html\Data\XLSX\todo\A6S54300.xlsx »

Enregistrements supprimés: Formule dans la partie /xl/worksheets/sheet2.xml

最佳答案 问题可能是公式函数名称是法语,但Excel希望它在

English中存储/写入.至少在XlsxWriter编写的文件中.

试试这个:

shInfo.write('G3','=COUNTA(Analyse!C:C)-1',information)

shInfo.write('G5','=COUNTIF(Analyse!D:D,"To change")',information)

如果您向我发送一个使用法语版Excel保存的小样本文件,我将查看是否可以在XlsxWriter编写的文件中设置一个标志来指示公式的语言.

更新:COUNTIF()公式还需要使用US样式的逗号运算符而不是;.

更新2:根据@gatchan提供的示例文件,文件中没有语言标识符.保存时,公式将由Excel翻译为英语和美式逗号运算符.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
可以openpyxl库来实现将单元格函数计算结果写入单元格的功能。下面是一个示例代码: ```python from openpyxl import Workbook from openpyxl.utils import get_column_letter from openpyxl.utils.cell import coordinate_from_string from openpyxl.formula import Tokenizer, Token, FORMULA_REGEX from openpyxl.formula.translate import Translator # 创建一个新的工作簿 wb = Workbook() # 选择第一个工作 ws = wb.active # 设置单元格值和公式 ws['A1'] = 10 ws['A2'] = 20 ws['A3'] = '=SUM(A1:A2)' # 获取公式输入的字符串 formula_str = ws['A3'].value # 解析公式字符串并获取单元格坐标 tokenizer = Tokenizer(formula_str) tokens = list(tokenizer.items) for i, token in enumerate(tokens): if token.value.startswith("$"): tokens[i] = Token("RANGE", coordinate_from_string(token.value)) # 将公式中的相对引用转换为绝对引用 translator = Translator("A3") translated_tokens = translator.translate(tokens) # 重新构建公式字符串 new_formula_str = "".join([t.value for t in translated_tokens]) # 计算公式的值 result = ws.cell(row=3, column=1).value # 将计算结果写入单元格 ws['B3'] = result # 保存工作簿 wb.save('example.xlsx') ``` 这个示例代码中,我们首先创建了一个新的工作簿,并在第一个工作中设置了单元格值和公式。然后,我们从单元格中获取公式输入的字符串,解析公式字符串并获取单元格坐标,将公式中的相对引用转换为绝对引用,重新构建公式字符串,计算公式的值,最后将计算结果写入单元格,并保存工作簿。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值