Python 往Excel写数据
一、需求描述:
1、一张人员信息表中生成人员信息,某些列的字段要进行递增操作;
2、一个组织节点下存在1000人的限制要求;
3、一张Excel表格生成45000条数据;
二、Excel表格的表头如下:

三、相关操作
1、写Excel,首先需要安装xlwt模块;
2、可以采用pip的安装方式,安装方式如下图所示:

3、安装完成后,开始编写我们的程序:
首先需要明确几个函数的用法:
1、enumerate()
详细介绍:
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人
'''
import xlwt EXCEL_NAME = 'employees_mock.xls' PHONE_NUM = 13805710001
EMP_NUM = 482501
EMAIL_PREFIX = 333019041
SUB_PHONE_NUM = 478180
OFFICE_SUFFIX = 12771500
VIRTUAL_NET = 123456
TELGRAM_PHONE_NUM = 15370032950 def employe(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 def style():
##赋值style为XFStyle(),初始化样式
style = xlwt.XFStyle()
#设置单元格内字体样式
font = xlwt.Font()
font.name = 'Times New Roman'
font.bold = False return style #写Excel
def write_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 in enumerate(tb_head):
sheet.write(0, i, item, style()) return wb def main():
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 in enumerate(deps):
count = 1000 * c + 1
for row, emp in enumerate(employe(dep, count)):
for col, item in enumerate(emp):
table.write(row + count, col, item)
#保存文件
wb.save(EXCEL_NAME) if __name__ == '__main__':
main()
Python 往Excel写数据的更多相关文章
- python读取excel所有数据(cmd界面)
python读取excel所有数据(cmd界面) cmd界面显示excel数据 代码 import xlrd import os from prettytable import PrettyTable ...
- [转] Windows下使用Python读取Excel表格数据
http://www.python-excel.org/这个网站罗列了很多关于在Python下操作Excel文件的信息,这里选择了其介绍的第一个模块xlrd . xlrd 0.9.2版本跨平台同时支持 ...
- 利用python对excel进行数据剔除
需求分析: 判断excel2表中的某个唯一字段是否满足条件,如果满足条件,就在excel1中进行查询,若存在excel中,就将该数据进行剔除. python脚本的实现: from __future__ ...
- php操作EXCLE(通过phpExcle实现向excel写数据)
php通过phpExcel进行写excel <?phprequire_once('/PHPExcel.php');require_once('/PHPExcel/Writer/Excel2007 ...
- java向excel写数据
package pymongo1; import java.io.File;import java.io.IOException;import java.io.OutputStream; import ...
- Python操纵Excel,数据库
操作excelxlwt:写入excel表格 ,用这个之前需要先导入模块 xlwt: import xlwtxlrd:读取excel,用这个之前需要先导入模块 xlwt:import xlrd 注意:e ...
- python 操作excel openpyxl
1 安装 pip install openpyxl 如果装不上,请指定安装源来安装 pip install -i https://pypi.douban.com/simple openpyxl 如果e ...
- Python操作 Excel表格
python 读写 excel 有好多选择,但是,方便操作的库不多,在我尝试了几个库之后,我觉得两个比较方便的库分别是 xlrd/xlwt.openpyxl. 我使用openpyxl 安装: pip ...
- openpyxl python操作Excel表格,
这里openpyxl只支持xlsx格式的Excel,openpyxl使用起来会更方便一些,所以如果只操作小流水线文件的话,那么可以优先选择openpyxl,如果要兼容xls的话,就使用xlrd/xlw ...
随机推荐
- Linux监控工具vmstat命令
当linux服务器的发生告警,我们要查看当前系统的状态值,包括CPU使用率,内存使用情况,虚拟内存交换情况,IO读写情况等. top与vmstat这两个监控工具都满足要求,当然top还可以看到各个进程 ...
- 【System】进程,线程和任务之间的区别是什么?
任务(task)是最抽象的,是一个一般性的术语,指由软件完成的一个活动.一个任务既可以是一个进程,也可以是一个线程.简而言之,它指的是一系列共同达到某一目的的操作.例如,读取数据并将数据放入内存中.这 ...
- 【ORACLE】awr报告问题分析
本文转自:http://www.linuxidc.com/Linux/2015-10/123959.htm 感谢分享 1.问题说明 运维人员都有"节日休假恐怖症",越到节日.休假和 ...
- 电子邮箱、邮件地址、网站地址正则表达式!几个有用的RE、regex、regexp!
几个常用的正则表达式! r"\w[-\w\.]*@\w[-\w]*(\.\w[-\w]*)+" 这个是电子邮件地址的. r"<TAG\b[^>]*<(. ...
- SAP RFC的相关的术语说明
工作比较忙,很少有时间写点文章,抽空写点吧,给需要的人看看,虽然徒弟很多了,不过还是不要固步自封,在这里也指导更多的人进步吧. RFC(Remote Function Call)是SAP系统和其他(S ...
- Java基础复习2
三目运算符 语法:条件判断?表达式1:表达式2; 如果条件判断成立则获取值1否则获取值2 public class demo1{ public static void main(String[ ...
- 阿里云VOD(二)
一.准备工作 1.设置不转码 测试之前设置默认"不转码",以节省开发成本 2.找到子账户的AccessKey ID 3.给子账户添加授权 AliyunVODFullAccess 4 ...
- 理解js闭包9大使用场景
1.返回值(最常用) //1.返回值 最常用的 function fn(){ var name="hello"; return function(){ return name; } ...
- CSS不用背景图片实现优惠券样式反圆角,凹圆角,反向半圆角,并且背景渐变
日常开发过程中,特别是商城相关应用开发过程中,时常会遇到花里胡哨的设计图,比如优惠券样式,上图: 实现思路如下: 1.先写一个外容器,实现背景色渐变: Html: 1 <div clas ...
- 并发编程常用工具类(一) countDownLatch和cyclicBarrier的使用对比
1.CountDownLatch countDownLatch的作用是让一组线程等待其他线程完成工作以后在执行,相当于加强版的join(不懂可以百度一下join的用法),一般在初始 ...