在python中,使用openpyxl模块,以及xlsxwriter引擎,指定文件夹,遍历全部excel,对所有sheet进行去函数化,保存原文件。
时间: 2024-05-11 22:13:50 浏览: 111
以下是可能的实现:
```python
import os
import openpyxl
import xlsxwriter
# 指定文件夹路径
folder_path = '/path/to/folder/'
# 遍历文件夹中的所有文件
for file_name in os.listdir(folder_path):
file_path = os.path.join(folder_path, file_name)
if os.path.isfile(file_path) and file_name.endswith('.xlsx'):
# 打开excel文件
wb = openpyxl.load_workbook(file_path)
# 遍历所有sheet
for sheet_name in wb.sheetnames:
sheet = wb[sheet_name]
# 去除所有公式
for row in sheet.rows:
for cell in row:
if cell.data_type == 'f':
cell.value = cell.value # 赋值,相当于去掉公式
# 保存原文件
wb.save(file_path)
# 生成一个新的xlsx文件,只包含值和格式
new_file_path = os.path.join(folder_path, 'values_only_' + file_name)
with xlsxwriter.Workbook(new_file_path) as new_wb:
new_sheet = new_wb.add_worksheet(sheet_name)
for row_idx, row in enumerate(sheet.iter_rows(values_only=True)):
new_sheet.write_row(row_idx, 0, row)
```
本代码会遍历指定文件夹中的所有xlsx文件,对每个文件中的所有sheet进行去函数化操作,并保存原文件。同时,还会生成一个新的xlsx文件,只包含值和格式,没有公式。新文件名为原文件名前缀加上"values_only_"。
阅读全文