xlwt.ExcelFormulaParser.FormulaParseException: can't parse formula 'sum('工资-招商银行'!F1:F10000,'工资-民生银行'!F1:F10000,'工资-浙商银行'!F1:F10000)'
时间: 2023-06-24 10:03:29 浏览: 177
这个错误提示是由于 xlwt.ExcelFormulaParser 无法解析公式 'sum('工资-招商银行'!F1:F10000,'工资-民生银行'!F1:F10000,'工资-浙商银行'!F1:F10000)',其中可能存在一些语法错误或者不支持的公式。
建议您检查一下这个公式的语法,确保它符合 Excel 公式的语法规则,并且尝试将它分解成更简单的公式来测试,以确定哪个部分出现了问题。另外,如果您使用的是 xlwt 的较旧版本,建议升级到最新版本,以确保它支持您正在使用的所有公式。
相关问题
AttributeError: 'CommonToken' object has no attribute 'txt' xlwt.Formula('SUM(工资-招商银行!F:F)'.replace('txt', 'text')), style_data)
这个错误是由于你正在尝试在一个 CommonToken 对象上调用 `txt` 属性,但是该属性不存在。这可能是因为你的代码中有一个拼写错误或逻辑错误,导致你的代码试图在错误的对象上调用该属性。
同时,你提供的代码片段中,有一个 `xlwt.Formula` 函数的调用,它包含一个字符串 `"SUM(工资-招商银行!F:F)"`,该字符串中似乎使用了 `txt` 来替换 `text`。这也可能导致错误。
要解决这个问题,你需要检查你的代码中是否存在拼写错误或逻辑错误,并确保正确地使用了属性和函数。你可以尝试使用 `text` 替换所有的 `txt`,看看是否能够解决这个问题。同时,你可以查看 `CommonToken` 类的文档,了解它所支持的属性和方法。
用xlwt最新库,有4个WS名字是工资-招商银行,工资-民生商银行,工资-浙商银行,总计,把4个WS存入一个xls中,总计WS写入一个单元格给另外3个WS的F列求和输出为excel的SUM公式
可以按照以下步骤操作:
1. 导入 xlwt 库:
```python
import xlwt
```
2. 创建一个新的 Excel 文件并添加工作表:
```python
workbook = xlwt.Workbook()
ws1 = workbook.add_sheet('工资-招商银行')
ws2 = workbook.add_sheet('工资-民生商银行')
ws3 = workbook.add_sheet('工资-浙商银行')
ws4 = workbook.add_sheet('总计')
```
3. 在各个工作表中添加数据:
```python
# 在 ws1 中添加数据
ws1.write(0, 0, '姓名')
ws1.write(0, 1, '工资')
ws1.write(1, 0, '张三')
ws1.write(1, 1, 5000)
ws1.write(2, 0, '李四')
ws1.write(2, 1, 6000)
# 在 ws2 中添加数据
ws2.write(0, 0, '姓名')
ws2.write(0, 1, '工资')
ws2.write(1, 0, '王五')
ws2.write(1, 1, 4500)
ws2.write(2, 0, '赵六')
ws2.write(2, 1, 5500)
# 在 ws3 中添加数据
ws3.write(0, 0, '姓名')
ws3.write(0, 1, '工资')
ws3.write(1, 0, '孙七')
ws3.write(1, 1, 4800)
ws3.write(2, 0, '周八')
ws3.write(2, 1, 5200)
# 在 ws4 中添加数据
ws4.write(0, 0, '总计')
ws4.write(1, 0, xlwt.Formula('SUM(B2:B3)'))
ws4.write(1, 1, xlwt.Formula('SUM(\'工资-招商银行\'!B2:B3)'))
ws4.write(1, 2, xlwt.Formula('SUM(\'工资-民生商银行\'!B2:B3)'))
ws4.write(1, 3, xlwt.Formula('SUM(\'工资-浙商银行\'!B2:B3)'))
```
4. 保存 Excel 文件:
```python
workbook.save('工资表.xls')
```
完整代码如下:
```python
import xlwt
# 创建一个新的 Excel 文件并添加工作表
workbook = xlwt.Workbook()
ws1 = workbook.add_sheet('工资-招商银行')
ws2 = workbook.add_sheet('工资-民生商银行')
ws3 = workbook.add_sheet('工资-浙商银行')
ws4 = workbook.add_sheet('总计')
# 在各个工作表中添加数据
# 在 ws1 中添加数据
ws1.write(0, 0, '姓名')
ws1.write(0, 1, '工资')
ws1.write(1, 0, '张三')
ws1.write(1, 1, 5000)
ws1.write(2, 0, '李四')
ws1.write(2, 1, 6000)
# 在 ws2 中添加数据
ws2.write(0, 0, '姓名')
ws2.write(0, 1, '工资')
ws2.write(1, 0, '王五')
ws2.write(1, 1, 4500)
ws2.write(2, 0, '赵六')
ws2.write(2, 1, 5500)
# 在 ws3 中添加数据
ws3.write(0, 0, '姓名')
ws3.write(0, 1, '工资')
ws3.write(1, 0, '孙七')
ws3.write(1, 1, 4800)
ws3.write(2, 0, '周八')
ws3.write(2, 1, 5200)
# 在 ws4 中添加数据
ws4.write(0, 0, '总计')
ws4.write(1, 0, xlwt.Formula('SUM(B2:B3)'))
ws4.write(1, 1, xlwt.Formula('SUM(\'工资-招商银行\'!B2:B3)'))
ws4.write(1, 2, xlwt.Formula('SUM(\'工资-民生商银行\'!B2:B3)'))
ws4.write(1, 3, xlwt.Formula('SUM(\'工资-浙商银行\'!B2:B3)'))
# 保存 Excel 文件
workbook.save('工资表.xls')
```
阅读全文