python向excel写数据_Python 往Excel写数据

一、需求描述:

1、一张人员信息表中生成人员信息,某些列的字段要进行递增操作;

2、一个组织节点下存在1000人的限制要求;

3、一张Excel表格生成45000条数据;

二、Excel表格的表头如下:

1160875-20170601102118993-2127488281.png

三、相关操作

1、写Excel,首先需要安装xlwt模块;

2、可以采用pip的安装方式,安装方式如下图所示:

1160875-20170601102726133-38872276.png

3、安装完成后,开始编写我们的程序:

首先需要明确几个函数的用法:

1、enumerate()

详细介绍:

1160875-20170601140657930-1789524396.png

2、format()

格式化数据

3、yield相关知识

详细介绍:http://blog.csdn.net/alvine008/article/details/43410079

写数据基本操作:

创建工作簿(workbook)和工作表(sheet):

import xlwt

workbook = xlwt.Workbook()

sheet = workbook.add_sheet("Sheet Name")

写单元格(cell):

sheet.write(0, 0, 'foobar') # row, column, value

对单元格应用样式(加粗为例):

style = xlwt.easyxf('font: bold 1')

sheet.write(0, 0, 'foobar', style)

具体实现代码:

#! -*- coding:utf-8 -*-

'''

1、第一步:我们需要引入xlwt模块:import xlwt

2、第二步:创建一个excel表格

3、第三步:定义需要自增字段的起始值

4、第四步:初始化表格:sheet页、样式、表头填充

5、第五步:按照每行进行数据写入,1个部门节点人数限制为1000人

'''

importxlwt

EXCEL_NAME= 'employees_mock.xls'PHONE_NUM= 13805710001EMP_NUM= 482501EMAIL_PREFIX= 333019041SUB_PHONE_NUM= 478180OFFICE_SUFFIX= 12771500VIRTUAL_NET= 123456TELGRAM_PHONE_NUM= 15370032950

defemploye(depart, count):for _ in range(1000):

name= u'工作人员{}'.format(count)

phone_num= str(PHONE_NUM +count)

gender= u'男'emp_num= str(EMP_NUM +count)

is_charger= u'否'job= u'开发'email= u'{}@foo.com'.format(EMAIL_PREFIX +count)

sub_phone_num= SUB_PHONE_NUM +count

addr= u'杭州滨江'remark= u'测试'office= u'信息安全管理员'position= u'管理岗位'bureau= u'发发发'office_phone_num= u'0571-{}'.format(OFFICE_SUFFIX)

v_net= u'192.168.1.{}'.format(count % 256)

tel_phone_num= str(TELGRAM_PHONE_NUM +count)

tel_net= u'192.168.0.{}'.format(count % 256)yield[

depart,

name,

phone_num,

gender,

emp_num,

is_charger,

job,

email,

sub_phone_num,

addr,

remark,

office,

position,

bureau,

office_phone_num,

v_net,

tel_phone_num,

tel_net

]

count+= 1

defstyle():##赋值style为XFStyle(),初始化样式

style =xlwt.XFStyle()#设置单元格内字体样式

font =xlwt.Font()

font.name= 'Times New Roman'font.bold=Falsereturnstyle#写Excel

defwrite_excel():

wb= xlwt.Workbook()#创建工作簿

sheet = wb.add_sheet(u'sheet1', cell_overwrite_ok=True)#创建第一个sheet页 第二参数用于确认同一个cell单元是否可以重设值#初始化表头列表

tb_head =[

u'部门',

u'姓名',

u'手机号',

u'性别',

u'工号',

u'是否此部门主管(是/否)',

u'职位',

u'邮箱',

u'分机号',

u'办公地点',

u'备注',

u'职务',

u'岗位',

u'办公室',

u'办公电话',

u'虚拟网',

u'电信手机号',

u'电信虚拟网']for i, item inenumerate(tb_head):

sheet.write(0, i, item, style())returnwbdefmain():

wb=write_excel()

table=wb.get_sheet(0)#insert 10k mock employee data

deps = [u'浙江省-反贪局-分局{}'.format(i + 1) for i in range(50)]#deps.extend(#[u'浙江省-工商局-分局{}'.format(i) for i in range(10)]#)#deps.extend(#[u'陕西省-计划生育局-分局{}'.format(i) for i in range(10)]#)

for c, dep inenumerate(deps):

count= 1000 * c + 1

for row, emp inenumerate(employe(dep, count)):for col, item inenumerate(emp):

table.write(row+count, col, item)#保存文件

wb.save(EXCEL_NAME)if __name__ == '__main__':

main()

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值