工作中出现需要从大量Excel表格文件中读取指定单元格内容并汇总到一个表格中。上网搜索一下,利用Python的pandas模块可以快速实现。openpyxl也可以,不过为了快速,以能搜到的形成代码为优先。
简单修改别人代码,实现如下。
python
import os
import pandas as pd
or_path = "D:/xlsx"
re_path = "D:/results"
result_df = pd.DataFrame()
# 因为这个例子里,Excel文件独立在不同文件夹中,所以需要遍历所有子目录
for root, dirs, files in os.walk(or_path):
for file in files:
# 只处理指定文件
if !file.endswith(".xlsx"):
continue
read_xls = pd.ExcelFile(os.path.join(root, file))
# 例子中,每个文件有多个sheet,需要遍历每个sheet
for sheetname in read_xls.sheet_name:
# 通过sheet名字读取表格内容
df = read_xls.parse(sheetname, header=None)
# 通过values函数可以读取单元格内容
# 通过Data函数可以构建表格
read_df = pd.Data({'name':[df.values[2, 1]], 'age':[df.values[3, 1]]})
# 拼接表格
result_df = pd.concat([result_df, read_df])
# 输出汇总到文件
result_df.to_csv(os.path.join(re_path, "result.csv"), index = false)
测试没有问题。