python学习笔记操作合并大量的数据表格

每个人把自己的个人信息发给负责人,负责人负责统计整合到一个表中去(当然现在已经不需要了,因为腾讯在线表格完全可以直接多人操作写在一个 表格中去)

有以下数据(数据是编造的)
在这里插入图片描述
在这里插入图片描述
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
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

见己个人平台

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值