Python读取多sheet带公式excel文件计算并保存为只有计算结果的文件
时间: 2024-12-22 20:29:29 浏览: 8
在Python中,我们可以使用pandas库处理Excel文件,包括读取多sheet,并可以解析和计算包含公式的单元格。`openpyxl` 或 `xlrd` 库可以用来读取xlsx格式的文件,而`pandas`则能方便地进行数据操作。
首先,你需要安装必要的库,如果还没有安装,可以使用以下命令:
```bash
pip install pandas openpyxl
```
然后,你可以按照以下步骤读取多sheet的Excel文件、计算公式并保存结果:
```python
import pandas as pd
# 读取Excel文件
def read_excel_with_formulas(file_path):
# 使用openpyxl读取xlsx文件
if file_path.endswith('.xlsx'):
wb = pd.ExcelFile(file_path, engine='openpyxl')
else: # 对于.xls文件
wb = pd.ExcelFile(file_path)
sheets = wb.sheet_names # 获取所有sheet名称
dfs = {}
for sheet in sheets:
df = pd.read_excel(wb, sheet_name=sheet) # 读取每一sheet
dfs[sheet] = df # 存储到字典中
return dfs
# 计算公式
def calculate_and_save(dfs, output_file):
for sheet, df in dfs.items():
for col in df.columns:
if isinstance(df[col][0], str) and len(df[col].str.contains('=').sum()) > 0: # 检查列是否有公式
df[col] = df.apply(lambda row: eval(row[col]), axis=1) # 使用eval函数计算公式
df.to_csv(f"{output_file}_{sheet}.csv", index=False) # 保存每张表的结果
# 示例用法
input_file = 'your_input.xlsx'
output_dir = 'calculated_results'
dfs = read_excel_with_formulas(input_file)
calculate_and_save(dfs, output_dir)
阅读全文