将文件夹内多个excel中,删除全部不符合配置文件中设定的sheet名称的工作表
时间: 2023-05-16 21:05:03 浏览: 80
你可以使用Python中的pandas库来实现这个功能。首先,你需要读取配置文件和文件夹中的所有excel文件,然后循环遍历每个excel文件中的所有工作表,如果工作表名称不在配置文件中指定的名称列表中,则删除该工作表。以下是示例代码:
```python
import pandas as pd
import os
# 读取配置文件中指定的工作表名称列表
config_file = 'config.txt'
with open(config_file, 'r') as f:
sheet_names = f.read().splitlines()
# 遍历文件夹中的所有excel文件
folder_path = 'excel_folder'
for file_name in os.listdir(folder_path):
if file_name.endswith('.xlsx'):
file_path = os.path.join(folder_path, file_name)
# 读取excel文件中的所有工作表
excel_file = pd.ExcelFile(file_path)
sheet_names_all = excel_file.sheet_names
# 遍历工作表,删除不符合配置文件中指定的名称列表的工作表
for sheet_name in sheet_names_all:
if sheet_name not in sheet_names:
df = pd.read_excel(file_path, sheet_name=sheet_name)
with pd.ExcelWriter(file_path, mode='a', engine='openpyxl') as writer:
df.to_excel(writer, sheet_name=sheet_name, index=False)
os.remove(file_path[:-5] + f'_{sheet_name}.xlsx')
```
这段代码会将不符合配置文件中指定的名称列表的工作表删除,并将符合条件的工作表保存到原excel文件中。同时,删除的工作表会被保存为单独的excel文件,文件名为原excel文件名加上下划线和工作表名称。