在python中,使用openpyxl模块,以及xlsxwriter引擎,将指定文件夹内的全部excel进行去函数化,保存原文件。显示进度条。
时间: 2024-05-08 18:16:38 浏览: 117
这是一个比较复杂的任务,需要一些代码实现。以下是一个可能的实现方式:
```python
import os
import openpyxl
import xlsxwriter
from tqdm import tqdm
def remove_formulas_in_folder(folder_path):
# 遍历文件夹中的所有excel文件
for filename in tqdm(os.listdir(folder_path)):
if filename.endswith('.xlsx'):
file_path = os.path.join(folder_path, filename)
# 读取原excel文件
wb = openpyxl.load_workbook(file_path)
# 遍历每个sheet
for sheet in wb:
# 遍历每个单元格
for row in sheet.iter_rows():
for cell in row:
# 删除公式
if cell.data_type == 'f':
cell.data_type = 'n'
cell.value = None
# 使用xlsxwriter引擎保存原文件(会覆盖原文件)
writer = pd.ExcelWriter(file_path, engine='xlsxwriter')
writer.book = wb
writer.save()
# 测试
remove_formulas_in_folder('/path/to/folder')
```
以上代码中,使用了以下几个模块和函数:
- `os.listdir(folder_path)`:遍历文件夹中的所有文件。
- `openpyxl.load_workbook(file_path)`:读取指定excel文件。
- `sheet.iter_rows()`:遍历sheet中的所有行。
- `cell.data_type == 'f'`:判断单元格是否包含公式。
- `xlsxwriter`:使用该引擎保存原excel文件。
- `tqdm`:显示进度条。
阅读全文