Python 多工作表且带函数计算的工作薄另存仅有结果数值的新工作薄
时间: 2024-09-27 10:10:29 浏览: 35
Python中的各种装饰器详解
在Python中,如果你想要处理Excel工作簿并仅保留特定工作表的结果数据(即应用函数后的数值),可以使用`pandas`库来读取、操作数据,然后再保存为新的工作簿。以下是一个简单的步骤:
1. 首先,你需要安装`openpyxl`和`pandas`库,如果还没有安装,可以在命令行中运行:
```
pip install openpyxl pandas
```
2. 使用`pandas`读取包含函数计算的工作簿:
```python
import pandas as pd
from openpyxl import load_workbook
# 加载工作簿
wb = load_workbook('原文件.xlsx')
sheet_names = wb.sheetnames # 获取工作表名称列表
# 对每个工作表进行循环
for sheet_name in sheet_names:
ws = wb[sheet_name]
data = []
for row in ws.iter_rows(values_only=True): # 只获取数值,忽略公式
data.append([cell.value for cell in row])
# 将数据转换为DataFrame
dfs = [pd.DataFrame(data[i], columns=data[0]) for i in range(1, len(data))] # 假设所有工作表的第一行都是列名
```
3. 然后将每张数据表保存为单独的新工作簿:
```python
for df, sheet_name in zip(dfs, sheet_names):
new_wb = pd.ExcelWriter(f'{sheet_name}_result.xlsx', engine='xlsxwriter') # 创建新工作簿
df.to_excel(new_wb, index=False) # 写入数据到新工作簿
new_wb.save() # 保存工作簿
```
在这个过程中,原始工作簿中的公式会被解析成对应的数值,然后只保存这些数值到新的工作簿中。
阅读全文