用xlwt最新库,有4个WS名字是工资-招商银行,工资-民生商银行,工资-浙商银行,总计,把4个WS存入一个xls中,总计WS写入一个单元格给另外3个WS的F列求和输出为excel的SUM公式
时间: 2024-05-13 14:17:18 浏览: 74
好的,可以按照以下步骤实现:
1. 导入需要的库:xlwt、xlrd、xlutils。
```python
import xlwt
from xlutils.copy import copy
import xlrd
```
2. 打开原来的Excel文件和需要写入的Excel文件
```python
rb = xlrd.open_workbook('原始文件.xls', formatting_info=True)
wb = copy(rb)
ws_total = wb.add_sheet('总计')
```
3. 获取要写入的4个工作表的数据,并将数据写入总计工作表和原始文件中的“总计”工作表。
```python
for i in range(4):
ws_name = '工资-{}'.format(['招商银行', '民生商银行', '浙商银行', '总计'][i])
ws = rb.sheet_by_name(ws_name)
ws_new = wb.get_sheet(i)
for r in range(ws.nrows):
for c in range(ws.ncols):
value = ws.cell(r, c).value
ws_new.write(r, c, value)
# 写入总计工作表
if c == 5:
if r == 0:
ws_total.write(r, c, '总计')
else:
ws_total.write(r, c, xlwt.Formula('SUM(B{}:E{})'.format(r+1, r+1)))
```
4. 保存写入后的Excel文件
```python
wb.save('新文件.xls')
```
完整代码如下:
```python
import xlwt
from xlutils.copy import copy
import xlrd
rb = xlrd.open_workbook('原始文件.xls', formatting_info=True)
wb = copy(rb)
ws_total = wb.add_sheet('总计')
for i in range(4):
ws_name = '工资-{}'.format(['招商银行', '民生商银行', '浙商银行', '总计'][i])
ws = rb.sheet_by_name(ws_name)
ws_new = wb.get_sheet(i)
for r in range(ws.nrows):
for c in range(ws.ncols):
value = ws.cell(r, c).value
ws_new.write(r, c, value)
# 写入总计工作表
if c == 5:
if r == 0:
ws_total.write(r, c, '总计')
else:
ws_total.write(r, c, xlwt.Formula('SUM(B{}:E{})'.format(r+1, r+1)))
wb.save('新文件.xls')
```
阅读全文