背景: 问卷调查,将问卷调查的结果进行合并,汇总
说明:
1.1 建议安装xlwt版本为1.20版本,版本太高报错
import xlwt, xlrd
from pathlib import Path, PurePath
src_path = r'C:\Users\think\Desktop\Python_Excel\question'
dst_path = r'C:\Users\think\Desktop\Python_Excel\result\result.xlsx'
# 获取调查问卷所有的文件
p = Path(src_path) # 返回真实路径,判断对应的目录是否存在
files = [x for x in p.iterdir() if PurePath(x).match('*.xlsx')] # 查找文件夹下所有的文件
# 准备存放读取的列表
content = []
# 读取调查问卷
for file in files:
# 获取文件名
username = file.stem
# 打开Excel
data = xlrd.open_workbook(file)
# 打开调查问卷表格第一页
table = data.sheets()[0]
# 获取每一项
re1 = table.cell_value(rowx=4, colx=4)
re2 = table.cell_value(rowx=10, colx=4)
# 临时存放每个人的调查结果,将每个人的结果存入到content列表中
tmp = f'{username},{re1},{re2}'
content.append(tmp.split(','))
# 准备写入到调查结果汇总的文件中
table_header = ['员工姓名', '第一项', '第二项']
# 创建excel对象
workbook = xlwt.Workbook(encoding='utf-8')
result_sheet = workbook.add_sheet("统计汇总")
row = 0
col = 0
for x in table_header:
result_sheet.write(row, col, x)
col += 1
# 向下移动一行
col = 0
row += 1
for line in content:
for value in line:
result_sheet.write(row, col, value)
# 写完一行,右移一个单元格
col += 1
# 统计完一个人信息,下移一行
row += 1
col = 0
workbook.save(dst_path)
结果展示