用xlwt给ws填加公式求和
时间: 2023-06-18 11:05:59 浏览: 126
使用xlwt模块给worksheet添加公式可以使用write_formula()方法。要在单元格中添加求和公式,可以使用SUM()函数。
以下是一个示例代码,将求和公式添加到A1单元格中:
```python
import xlwt
# 创建Workbook和Worksheet对象
workbook = xlwt.Workbook()
worksheet = workbook.add_sheet('Sheet1')
# 添加求和公式到A1单元格
worksheet.write_formula(0, 0, 'SUM(B1:B10)')
# 保存Excel文件
workbook.save('example.xls')
```
在此示例中,我们将SUM(B1:B10)公式添加到A1单元格中。这将对B1到B10单元格中的值进行求和。要将公式添加到其他单元格,请更改第一和第二个参数。
相关问题
用xlwt给ws填加公式求和另一个ws
### 回答1:
要在一个worksheet中填加公式求和另一个worksheet,需要使用xlwt库中的公式功能。具体步骤如下:
1. 导入xlwt库并打开Excel文件:
```python
import xlwt
from xlwt import Workbook
# 创建一个Workbook对象,注意Workbook的大小写
book = Workbook()
# 添加一个sheet页
ws1 = book.add_sheet('Sheet1')
ws2 = book.add_sheet('Sheet2')
```
2. 在第一个worksheet中添加数据:
```python
# 向第一个worksheet中添加数据
ws1.write(0, 0, 10)
ws1.write(1, 0, 20)
ws1.write(2, 0, 30)
```
3. 在第二个worksheet中添加数据:
```python
# 向第二个worksheet中添加数据
ws2.write(0, 0, 1)
ws2.write(1, 0, 2)
ws2.write(2, 0, 3)
```
4. 在第二个worksheet中添加求和公式:
```python
# 在第二个worksheet中添加求和公式
ws2.write(3, 0, xlwt.Formula('SUM(Sheet1!A1:A3)'))
```
5. 保存Excel文件:
```python
# 保存Excel文件
book.save('example.xls')
```
这样,就可以在第二个worksheet中自动计算第一个worksheet中的数据之和了。
### 回答2:
使用xlwt库给一个worksheet填加公式求和另一个worksheet的方法如下所示:
import xlwt
def fill_sum_formula(ws1, ws2, ws2_sum_range, ws1_sum_cell):
# 在ws1中填加公式求和ws2的指定范围
ws1.write_formula(ws1_sum_cell, 'SUM({})'.format(ws2_sum_range), None)
# 创建一个新的工作簿和两个工作表
workbook = xlwt.Workbook()
ws1 = workbook.add_sheet('Sheet1')
ws2 = workbook.add_sheet('Sheet2')
# 在ws2中填写一些数据
for i in range(10):
for j in range(5):
ws2.write(i, j, i+j)
# 设置ws2中需要求和的范围
ws2_sum_range = 'Sheet2!A1:E10'
# 设置ws1中需要填加求和公式的单元格
ws1_sum_cell = 'A1'
# 调用函数填加求和公式
fill_sum_formula(ws1, ws2, ws2_sum_range, ws1_sum_cell)
# 保存工作簿
workbook.save('result.xls')
在上述示例代码中,我们首先导入了xlwt库,然后定义了一个用于填加求和公式的函数fill_sum_formula。该函数接收四个参数,ws1为要填加公式的worksheet,ws2为要求和的worksheet,ws2_sum_range为ws2中需要求和的范围,ws1_sum_cell为ws1中要填加公式的单元格。
然后,我们创建了一个新的工作簿,并添加了两个工作表ws1和ws2。接着,在ws2中填写了一些数据。然后,我们调用fill_sum_formula函数,将ws1、ws2、ws2_sum_range和ws1_sum_cell作为参数传入,来填加求和公式。最后,我们保存工作簿到result.xls文件中。
这样,我们就通过xlwt库成功地给一个worksheet填加了求和另一个worksheet的公式。
### 回答3:
使用xlwt库可以将公式求和填充到另一个工作表(worksheet)中。首先,我们需要创建一个工作簿(workbook)对象和一个工作表对象(worksheet)。
接下来,我们可以在第一个工作表中填充数据,并使用公式求和这些数据。
然后,我们创建一个公式,使用相应的工作表的名称和单元格范围,在第二个工作表中填充这个公式。
最后,保存并关闭工作簿。
以下是示例代码:
```python
import xlwt
# 创建工作簿和工作表对象
workbook = xlwt.Workbook()
worksheet1 = workbook.add_sheet('Sheet1')
worksheet2 = workbook.add_sheet('Sheet2')
# 在第一个工作表中填充数据
worksheet1.write(0, 0, 1)
worksheet1.write(0, 1, 2)
worksheet1.write(1, 0, 3)
worksheet1.write(1, 1, 4)
# 创建公式求和
formula = 'SUM(Sheet1!A1:B2)'
# 在第二个工作表中填充公式
worksheet2.write(0, 0, xlwt.Formula(formula))
# 保存并关闭工作簿
workbook.save('output.xls')
workbook.close()
```
执行以上代码后,将会生成一个名为"output.xls"的Excel文件,其中第二个工作表中的A1单元格将会显示求和结果。
用xlwt最新库,有4个WS名字是工资-招商银行,工资-民生商银行,工资-浙商银行,差异,把4个WS存入一个xls中,差异WS写入一个单元格给另外3个WS的F列求和输出为excel公式
可以按照以下步骤实现:
1. 首先,需要安装最新版的 `xlwt` 库,可以使用 `pip` 命令进行安装:
```
pip install xlwt --upgrade
```
2. 创建一个新的 Excel 文件,并且添加 4 个工作表:
```python
import xlwt
# 创建一个新的工作簿
workbook = xlwt.Workbook()
# 添加 4 个工作表
sheet1 = workbook.add_sheet('工资-招商银行')
sheet2 = workbook.add_sheet('工资-民生商银行')
sheet3 = workbook.add_sheet('工资-浙商银行')
sheet4 = workbook.add_sheet('差异')
```
3. 将数据写入每个工作表中。这里假设每个工作表中都有一个名为 `salary` 的数据列表,其中包含每个员工的工资信息。可以使用循环将数据写入每个工作表中:
```python
# 假设有一个名为 salary 的数据列表,包含每个员工的工资信息
for i, s in enumerate(salary):
# 写入第 i+1 行的数据
sheet1.write(i, 0, s['bank1'])
sheet1.write(i, 1, s['salary'])
sheet2.write(i, 0, s['bank2'])
sheet2.write(i, 1, s['salary'])
sheet3.write(i, 0, s['bank3'])
sheet3.write(i, 1, s['salary'])
sheet4.write(i, 0, s['bank1'] + s['bank2'] + s['bank3'])
```
4. 在差异工作表中添加一个公式,计算其他 3 个工作表的 F 列之和。可以使用 `xlwt` 库提供的 `Formula` 类来实现:
```python
# 在差异工作表中添加一个公式,计算其他 3 个工作表的 F 列之和
sum_formula = 'SUM('
for i in range(len(salary)):
if i > 0:
sum_formula += ','
sum_formula += '工资-招商银行!F{0},工资-民生商银行!F{0},工资-浙商银行!F{0}'.format(i+1)
sum_formula += ')'
sheet4.write(0, 0, xlwt.Formula(sum_formula))
```
5. 最后,将数据保存到 Excel 文件中:
```python
# 将数据保存到 Excel 文件中
workbook.save('salary.xls')
```
完整的代码如下:
```python
import xlwt
# 假设有一个名为 salary 的数据列表,包含每个员工的工资信息
salary = [
{'bank1': '招商银行', 'bank2': '民生商银行', 'bank3': '浙商银行', 'salary': 5000},
{'bank1': '招商银行', 'bank2': '民生商银行', 'bank3': '浙商银行', 'salary': 6000},
{'bank1': '招商银行', 'bank2': '民生商银行', 'bank3': '浙商银行', 'salary': 7000},
{'bank1': '招商银行', 'bank2': '民生商银行', 'bank3': '浙商银行', 'salary': 8000},
]
# 创建一个新的工作簿
workbook = xlwt.Workbook()
# 添加 4 个工作表
sheet1 = workbook.add_sheet('工资-招商银行')
sheet2 = workbook.add_sheet('工资-民生商银行')
sheet3 = workbook.add_sheet('工资-浙商银行')
sheet4 = workbook.add_sheet('差异')
# 将数据写入每个工作表中
for i, s in enumerate(salary):
sheet1.write(i, 0, s['bank1'])
sheet1.write(i, 1, s['salary'])
sheet2.write(i, 0, s['bank2'])
sheet2.write(i, 1, s['salary'])
sheet3.write(i, 0, s['bank3'])
sheet3.write(i, 1, s['salary'])
sheet4.write(i, 0, s['bank1'] + s['bank2'] + s['bank3'])
# 在差异工作表中添加一个公式,计算其他 3 个工作表的 F 列之和
sum_formula = 'SUM('
for i in range(len(salary)):
if i > 0:
sum_formula += ','
sum_formula += '工资-招商银行!F{0},工资-民生商银行!F{0},工资-浙商银行!F{0}'.format(i+1)
sum_formula += ')'
sheet4.write(0, 0, xlwt.Formula(sum_formula))
# 将数据保存到 Excel 文件中
workbook.save('salary.xls')
```
阅读全文