使用python将所有Excel表中的命名为1的sheet中的c列的第九行的数据输出到一个新的Excel表中,将新的Excel表命名为定额表(定额表输出在输入的文件夹中),如果是存在合并单元格的情况,只输出数据
时间: 2024-12-22 09:28:49 浏览: 8
在Python中,可以使用pandas库来操作Excel文件。首先,你需要安装pandas和openpyxl库,如果还没有安装,可以使用pip安装:
```bash
pip install pandas openpyxl
```
然后,你可以使用以下代码来实现这个需求:
```python
import os
import pandas as pd
# 输入文件路径
input_folder = 'your_input_folder_path'
# 遍历文件夹中的所有Excel文件
for filename in os.listdir(input_folder):
if filename.endswith('.xlsx') or filename.endswith('.xls'): # 检查是否为Excel文件
file_path = os.path.join(input_folder, filename)
try:
# 加载Excel文件
df = pd.read_excel(file_path, sheet_name='1', engine='openpyxl')
# 处理合并单元格
merged_cells = df.columns[df.columns.str.contains(r'\D')] # 查找包含非数字字符的列名,一般为合并单元格
for cell in merged_cells:
df[cell] = df.apply(lambda row: row[cell].split(), axis=1).tolist() # 分割并展开合并单元格
# 提取c列的第九行数据
data_row = df.loc[8, 'c'] # 注意这里假设索引是从0开始的
# 写入新的Excel文件(默认保存在同一目录)
output_filename = '定额表_' + filename
with pd.ExcelWriter(os.path.join(input_folder, output_filename)) as writer:
new_df = pd.DataFrame({'c': [data_row]})
new_df.to_excel(writer, index=False)
writer.save()
except FileNotFoundError:
print(f"文件 {file_path} 不存在")
except Exception as e:
print(f"处理文件 {file_path} 时发生错误: {e}")
阅读全文