xlwt.ExcelFormulaParser.FormulaParseException: can't parse formula 'sum(\'工资-招商银行\'!F1:F10000,\'工资-民生银行\'!F1:F10000,\'工资-浙商银行\'!F1:F10000)'
时间: 2023-06-24 17:03:21 浏览: 180
这个错误是由于你的公式中使用了单引号,而单引号是 Excel 中用于表示文本的字符,需要进行转义。你可以将单引号转义为双单引号,即将公式修改为:
sum(''工资-招商银行''!F1:F10000,''工资-民生银行''!F1:F10000,''工资-浙商银行''!F1:F10000)
或者使用中括号将工作表名称括起来,避免使用单引号,如下所示:
sum([工资-招商银行]!F1:F10000,[工资-民生银行]!F1:F10000,[工资-浙商银行]!F1:F10000)
相关问题
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')
```
阅读全文