遍历指定文件夹中以2-为开头的表格的xlsx文件,xlsx文件可能存在多个子表,每个子表之间有两个空行,拆分这些表格并保存,
时间: 2024-02-23 08:03:16 浏览: 70
Node.js利用js-xlsx处理Excel文件的方法详解
好的,我可以帮助你解决这个问题。首先,你需要安装 `pandas` 和 `openpyxl` 这两个 Python 库,它们分别用于数据处理和读写 Excel 文件。你可以使用以下命令安装:
```
pip install pandas openpyxl
```
然后,你可以使用以下代码来实现你的需求:
```python
import os
import pandas as pd
# 遍历指定文件夹中以2-为开头的表格的xlsx文件
folder_path = '/path/to/folder'
for file_name in os.listdir(folder_path):
if not file_name.startswith('2-') or not file_name.endswith('.xlsx'):
continue
file_path = os.path.join(folder_path, file_name)
# 读取 Excel 文件
excel_file = pd.ExcelFile(file_path)
for sheet_name in excel_file.sheet_names:
sheet_data = excel_file.parse(sheet_name)
# 拆分表格并保存
for i, (_, group) in enumerate(sheet_data.groupby(sheet_data.isnull().all(axis=1))):
if not group.empty:
new_file_name = f'{file_name[:-5]}_{sheet_name}_{i}.xlsx'
new_file_path = os.path.join(folder_path, new_file_name)
group.to_excel(new_file_path, sheet_name=sheet_name, index=False)
```
这段代码会遍历指定文件夹中以 `2-` 开头且扩展名为 `.xlsx` 的文件,然后读取每个文件中的所有表格,并拆分每个表格成多个文件,保存在同一文件夹中。拆分后的文件名会包含原始文件名、表格名和序号,例如 `2-example.xlsx_sheet1_0.xlsx`。
注意,这段代码并没有判断每个表格是否以两个空行分隔,你需要根据实际情况进行修改。另外,拆分后的文件格式为 xlsx,如果需要保存为其他格式,可以在 `to_excel` 方法中指定参数 `engine` 和 `file_type`。
阅读全文