问题
在一个文件夹下,有若干xlsx工作表,每个xlsx表中含有若干列和行,但仅需其中一项内容中包含特定关键字的行/列数据,并需将所有xlsx表中的该项内容汇总至一个excel文件内。
思路
- 将目标行/列名称作为索引,依据索引获取包含特定关键词的整行/列数据;
- 将获取的整行/列数据写入新excel文件中;
- 应用for循环实现批量提取和写入工作。
代码
#导入模块
import pandas as pd
import openpyxl
import os
#打开excel文件
wb = openpyxl.load_workbook('C:\Users\grr\Desktop\O3各指标之间的关系建立\站点_20150101-20151231\*.xlsx')
#选择工作表
ws = wb.active
#索引
keyword = 'O3'
#行数和列数
rows = ws.max_row
cols = ws.max_column
#遍历xlsx表格,寻找包含关键词的行数据
for row in range (1, rows+1):
for col in range (1, cols+1):
if keyword in str(ws.cell(row, col).value):
print(ws[row])
#建立输出目录的绝对路径
out_path = os.path.join(C:\Users\grr\Desktop\O3各指标之间的关系建立\站点_20150101-20151231, 'O3.xlsx')
#输出到excel表,并删除pandas默认的index列
df_concated.to_excel(out_path, sheet_name = 'Sheet1', index = None)
#调用并执行函数
to_one_excel(r'C:\Users\grr\Desktop\O3各指标之间的关系建立\站点_20150101-20151231')