每个人把自己的个人信息发给负责人,负责人负责统计整合到一个表中去(当然现在已经不需要了,因为腾讯在线表格完全可以直接多人操作写在一个 表格中去)
有以下数据(数据是编造的)
1.制作新表的表头
import xlsxwriter #用于向Excel文件中写数据
import xlrd #用去从Excel文件中读取数据
import os #使用os中的方法,获取指定目录下的所有文件
'''使用Python新建一个Excel文件'''
workbook = xlsxwriter.Workbook('有限公司.xlsx')#workbook对应磁盘上一个名称为XXX的excel文件
'''创建一个工作表,所说的sheet表'''
worksheet = workbook.add_worksheet()
'''设置单元格的样式,设置的是标题的格式'''
bold_center = workbook.add_format({'align':'center','valign':'vcenter','font_size':'18','border':1})#center表示的是居中
#align表示水平方向上居中,valign是垂直方向上居中,font_size是标题的字体大小,写18就够,border表示加了一个1像素的边框
'''设置细节标题的样式,添加灰色背景bg_color:'#ddddddddd‘即灰色背景,文字颜色是color,#ff0000是设置成红色,#000000是黑色'''
bold = workbook.add_format({'bold':True,'align':'center','valign':'vcenter','border':1,'bg_color':'#dddddd','color':'#000000'})
bold1 = workbook.add_format({'bold':True,'align':'center','valign':'vcenter','border':1,'bg_color':'#dddddd','color':'#ff0000'})
bold_cell = workbook.add_format({'align':'center','valign':'vcenter'})
# 加粗 水平 垂直 字体像素 背景颜色
'''合并单元格'''#合并用mergr_range 写在单独格里用write
worksheet.merge_range('A1:H2','公司名称:肥猫很萌',bold_center)
worksheet.merge_range('A3:A4','序号',bold)
worksheet.merge_range('B3:B4','姓名',bold)
worksheet.merge_range('C3:C4','是否离开',bold)
worksheet.merge_range('D3:D4','来京时间',bold)
worksheet.merge_range('E3:F3','从何处来',bold1)#从何处来的数据标红
worksheet.write('F4','市',bold)
worksheet.write('E4','省',bold)
worksheet.merge_range('G3:G4','上班时间',bold)
worksheet.merge_range('H3:H4','备注',bold)
workbook.close()
print('提取完毕')
2.读取要处理文件的数据
import xlsxwriter #用于向Excel文件中写数据
import xlrd #用去从Excel文件中读取数据
import os #使用os中的方法,获取指定目录下的所有文件
'''使用Python新建一个Excel文件'''
workbook = xlsxwriter.Workbook('有限公司.xlsx')#workbook对应磁盘上一个名称为XXX的excel文件
'''创建一个工作表,所说的sheet表'''
worksheet = workbook.add_worksheet()
'''设置单元格的样式,设置的是标题的格式'''
bold_center = workbook.add_format({'align':'center','valign':'vcenter','font_size':'18','border':1})#center表示的是居中
#align表示水平方向上居中,valign是垂直方向上居中,font_size是标题的字体大小,写18就够,border表示加了一个1像素的边框
'''设置细节标题的样式,添加灰色背景bg_color:'#ddddddddd‘即灰色背景,文字颜色是color,#ff0000是设置成红色,#000000是黑色'''
bold = workbook.add_format({'bold':True,'align':'center','valign':'vcenter','border':1,'bg_color':'#dddddd','color':'#000000'})
bold1 = workbook.add_format({'bold':True,'align':'center','valign':'vcenter','border':1,'bg_color':'#dddddd','color':'#ff0000'})
bold_cell = workbook.add_format({'align':'center','valign':'vcenter'})
# 加粗 水平 垂直 字体像素 背景颜色
'''合并单元格'''#合并用mergr_range 写在单独格里用write
worksheet.merge_range('A1:H2','公司名称:肥猫很萌',bold_center)
worksheet.merge_range('A3:A4','序号',bold)
worksheet.merge_range('B3:B4','姓名',bold)
worksheet.merge_range('C3:C4','是否离开',bold)
worksheet.merge_range('D3:D4','来京时间',bold)
worksheet.merge_range('E3:F3','从何处来',bold1)#从何处来的数据标红
worksheet.write('F4','市',bold)
worksheet.write('E4','省',bold)
worksheet.merge_range('G3:G4','上班时间',bold)
worksheet.merge_range('H3:H4','备注',bold)
'''获取指定目录下的所有文件'''
files = os.listdir('aatest/') #()中填写进去待处理的数据的文件夹路径
for item in files:
if item.endswith('.xlsx'): #过滤非Excel文件
#打开Excel文件
file = xlrd.open_workbook('aatest/'+item)#打开待处理的数据文件
#使用指定的sheet页
info = file.sheet_by_index(0) #0代表的是第一个sheet页
#获取指定单元格数据
name = info.cell(4,1).value#虽然是B5,(第二列,第5行)但是计算机是从0开始的,所以是4,1。即行和列的索引从0开始
leave_beijing = info.cell(4,2).value
in_beijing = info.cell(4,3).value
province = info.cell(4,4).value
city = info.cell(4,5).value
work_time = info.cell(4,6).value
remark = info.cell(4,7).value#备注
print(name,leave_beijing,in_beijing,province,city,work_time,remark)
workbook.close()
print('提取完毕')
快速的把这5张表整合到一张去。
import xlsxwriter #用于向Excel文件中写数据
import xlrd #用去从Excel文件中读取数据
import os #使用os中的方法,获取指定目录下的所有文件
'''使用Python新建一个Excel文件'''
workbook = xlsxwriter.Workbook('有限公司.xlsx')#workbook对应磁盘上一个名称为XXX的excel文件
'''创建一个工作表,所说的sheet表'''
worksheet = workbook.add_worksheet()
'''设置单元格的样式,设置的是标题的格式'''
bold_center = workbook.add_format({'align':'center','valign':'vcenter','font_size':'18','border':1})#center表示的是居中
#align表示水平方向上居中,valign是垂直方向上居中,font_size是标题的字体大小,写18就够,border表示加了一个1像素的边框
'''设置细节标题的样式,添加灰色背景bg_color:'#ddddddddd‘即灰色背景,文字颜色是color,#ff0000是设置成红色,#000000是黑色'''
bold = workbook.add_format({'bold':True,'align':'center','valign':'vcenter','border':1,'bg_color':'#dddddd','color':'#000000'})
bold1 = workbook.add_format({'bold':True,'align':'center','valign':'vcenter','border':1,'bg_color':'#dddddd','color':'#ff0000'})
bold_cell = workbook.add_format({'align':'center','valign':'vcenter'})
# 加粗 水平 垂直 字体像素 背景颜色
'''合并单元格'''#合并用mergr_range 写在单独格里用write
worksheet.merge_range('A1:H2','公司名称:肥猫很萌',bold_center)
worksheet.merge_range('A3:A4','序号',bold)
worksheet.merge_range('B3:B4','姓名',bold)
worksheet.merge_range('C3:C4','是否离开',bold)
worksheet.merge_range('D3:D4','来京时间',bold)
worksheet.merge_range('E3:F3','从何处来',bold1)#从何处来的数据标红
worksheet.write('F4','市',bold)
worksheet.write('E4','省',bold)
worksheet.merge_range('G3:G4','上班时间',bold)
worksheet.merge_range('H3:H4','备注',bold)
'''获取指定目录下的所有文件'''
files = os.listdir('aatest/') #()中填写进去待处理的数据的文件夹路径
num = 1#存储人员的序号
n=5#表示单元格的序号,因为第一个序号是从A5开始的
for item in files:
if item.endswith('.xlsx'): #过滤非Excel文件
#打开Excel文件
file = xlrd.open_workbook('aatest/'+item)#打开待处理的数据文件
#使用指定的sheet页
info = file.sheet_by_index(0) #0代表的是第一个sheet页
#获取指定单元格数据
name = info.cell(4,1).value#虽然是B5,(第二列,第5行)但是计算机是从0开始的,所以是4,1。即行和列的索引从0开始
leave_beijing = info.cell(4,2).value
in_beijing = info.cell(4,3).value
province = info.cell(4,4).value
city = info.cell(4,5).value
work_time = info.cell(4,6).value
remark = info.cell(4,7).value#备注
'''把获取到的数据写到新的Excel文件中'''
worksheet.write('A{}'.format(n),num,bold_cell)#在A5 A6 A7...
worksheet.write('B{}'.format(n),name,bold_cell)
worksheet.write('C{}'.format(n),leave_beijing,bold_cell)
worksheet.write('D{}'.format(n),in_beijing,bold_cell)
worksheet.write('E{}'.format(n),province,bold_cell)
worksheet.write('F{}'.format(n),city,bold_cell)
worksheet.write('G{}'.format(n),work_time,bold_cell)
print('完成'+item+'数据提取')#显示完成了那个文件的提取
num+=1#写完一行数据之后,人员序号加一
n+=1#单元格的行号加一
#注意python中是没有++的语法的,只有+=
workbook.close()
print('提取完毕')
Python读取xls文件报错:raise XLRDError(FILE_FORMAT_DESCRIPTIONS[file_format]+‘; not supported‘)
要添加:
pip install pyexcel-xls