帮我用PYTHON写一个程序,可以从excel的所有sheet中,提取每一张sheet中D列的数据,如果该数据为1,则将该行中B列和G列的数据提取出来
时间: 2023-06-06 09:09:16 浏览: 154
源码用python将一个Excel表里多个sheet相同的列进行提取并汇总
,然后写入一个新的excel文件的对应sheet中(sheet名字与原始excel文件中对应)。请问,你能够完成这个任务吗?
可以,这个任务可以通过Python中的pandas库实现。以下是代码示例:
```python
import pandas as pd
import os
# 定义函数,将原excel文件中的每个sheet提取出符合条件的数据写入新的excel文件
def extract_data(filepath):
# 读取原excel文件
df_original = pd.read_excel(filepath, sheet_name=None)
# 创建新的excel文件对象
writer = pd.ExcelWriter('output.xlsx', engine='xlsxwriter')
# 遍历每个sheet
for sheet_name, df_sheet in df_original.items():
# 判断D列的值是否为1
df_filtered = df_sheet[df_sheet['D'] == 1]
# 如果符合条件的数据不为空,将B列和G列的数据写入新的excel文件中对应的sheet
if not df_filtered.empty:
df_output = df_filtered[['B', 'G']]
df_output.to_excel(writer, sheet_name=sheet_name, index=False)
# 关闭新的excel文件
writer.save()
# 调用函数,提取数据并写入新的excel文件中
extract_data('example.xlsx')
```
请注意,上述代码假设原excel文件中所有sheet的格式相同,并且只有B、D、G三列数据。如果实际情况与此不同,需要根据具体情况进行修改。另外,由于涉及文件读写操作,需要保证运行代码的系统有足够的文件读写权限。
阅读全文