使用openpyxl写execl确实很方便。我先介绍用到的相关模块与函数

Workbook:工作簿模块,在内存创建一个工作簿。

ExcelWriter:使用它向exel中写数据。

get_column_letter:给一个数字得到一个列名,如A,B,C

  数据写入到EXCEL表格

#!/usr/bin/env python
# _*_ coding:utf-8 _*_
from openpyxl.workbook import Workbook
from openpyxl.writer.excel import ExcelWriter data = [
['序号', '组号', '申报单位', '姓名', '准考号', '考试分数(卷面分)']
, ['1', '1', '新民采油厂', '刘铁', '2012051224', '67.834']
, ['2', '1', '吉林油田总医院', '吕册', '2012120214', '66.776']
, ['3', '1', '吉林油田总医院', '王彦苏', '2012120718', '66.683']
, ['4', '1', '农业开发公司', '刘化峰', '2012060120', '66.664']
, ['5', '1', '油区教育处', '沙丽珊', '2012020817', '66.657']
, ['6', '1', '油区教育处', '王志会', '2012020914', '66.545']
, ['7', '1', '扶余采油厂', '姜波', '2012041210', '66.355']
, ['8', '2', '红岗采油厂', '王昕', '2012021226', '66.3']
, ['9', '2', '通信公司', '彭莉', '2012121014', '66.17']
, ['10', '2', '前郭矿区', '米云龙', '2012070121', '65.313']
, ['11', '2', '油区教育处', '秦勤', '2012022620', '65.061']
, ['12', '2', '储运销售公司', '许华', '2012130406', '64.95']
, ['13', '2', '江南物业', '兰庆伟', '2012030620', '64.869']
, ['14', '2', '滨江物业', '佟冬蕾', '2012110417', '64.652']
, ['15', '2', '农业开发公司', '曹宽', '2012061025', '64.564']
, ['16', '2', '农业开发公司', '孙成伟', '2012060318', '64.462']
, ['17', '3', '红岗采油厂', '张大勇', '2012020112', '64.384']
, ['18', '3', '储运销售公司', '刘贤宇', '2012130721', '64.378']
, ['19', '3', '建设公司', '李月', '2012010316', '64.029']
, ['20', '3', '客运公司', '姚佳媛', '2012130613', '63.914']
, ['21', '3', '物资供应处', '张丽', '2012110925', '63.883']
, ['22', '3', '江北物业', '益长虹', '2012100222', '63.723']
, ['23', '3', '建设公司', '张雁冰', '2012013327', '63.630']
, ['24', '3', '公用事业管理公司', '王涵', '2012022214', '63.522']
] # 在内存创建一个工作簿obj
wb = Workbook()
ws = wb.active
ws.title = u'招录人员名单'
# 向第一个sheet页写数据吧
i = 1
r = 1
for line in data:
for col in range(1, len(line) + 1):
ColNum = r
ws.cell(row=r, column=col).value = line[col - 1]
i += 1
r += 1
# 工作簿保存到磁盘
wb.save('test.xlsx')

  效果图:

  数据第二列是组号,数字相同的组号放在一个单元格中,怎么办呢?

#!/usr/bin/env python
# _*_ coding:utf-8 _*_
from openpyxl.workbook import Workbook
from openpyxl.writer.excel import ExcelWriter data = [
['序号', '组号', '申报单位', '姓名', '准考号', '考试分数(卷面分)']
, ['1', '1', '新民采油厂', '刘铁', '2012051224', '67.834']
, ['2', '1', '吉林油田总医院', '吕册', '2012120214', '66.776']
, ['3', '1', '吉林油田总医院', '王彦苏', '2012120718', '66.683']
, ['4', '1', '农业开发公司', '刘化峰', '2012060120', '66.664']
, ['5', '1', '油区教育处', '沙丽珊', '2012020817', '66.657']
, ['6', '1', '油区教育处', '王志会', '2012020914', '66.545']
, ['7', '1', '扶余采油厂', '姜波', '2012041210', '66.355']
, ['8', '2', '红岗采油厂', '王昕', '2012021226', '66.3']
, ['9', '2', '通信公司', '彭莉', '2012121014', '66.17']
, ['10', '2', '前郭矿区', '米云龙', '2012070121', '65.313']
, ['11', '2', '油区教育处', '秦勤', '2012022620', '65.061']
, ['12', '2', '储运销售公司', '许华', '2012130406', '64.95']
, ['13', '2', '江南物业', '兰庆伟', '2012030620', '64.869']
, ['14', '2', '滨江物业', '佟冬蕾', '2012110417', '64.652']
, ['15', '2', '农业开发公司', '曹宽', '2012061025', '64.564']
, ['16', '2', '农业开发公司', '孙成伟', '2012060318', '64.462']
, ['17', '3', '红岗采油厂', '张大勇', '2012020112', '64.384']
, ['18', '3', '储运销售公司', '刘贤宇', '2012130721', '64.378']
, ['19', '3', '建设公司', '李月', '2012010316', '64.029']
, ['20', '3', '客运公司', '姚佳媛', '2012130613', '63.914']
, ['21', '3', '物资供应处', '张丽', '2012110925', '63.883']
, ['22', '3', '江北物业', '益长虹', '2012100222', '63.723']
, ['23', '3', '建设公司', '张雁冰', '2012013327', '63.630']
, ['24', '3', '公用事业管理公司', '王涵', '2012022214', '63.522']
] # 在内存创建一个工作簿obj
wb = Workbook()
ws = wb.active
ws.title = u'招录人员名单'
# 向第一个sheet页写数据吧
i = 1
r = 1
for line in data:
for col in range(1, len(line) + 1):
ColNum = r
ws.cell(row=r, column=col).value = line[col - 1]
i += 1
r += 1
# =========合并单元格区===========
Li = []
tmp1 = []
tmp2 = []
tmp3 = []
for line in data: # 枚举法,总共三组数据,求出每组数据的数量
v = line[1]
if v == '1':
tmp1.append(v)
if v == '2':
tmp2.append(v)
if v == '3':
tmp3.append(v) Li.append(tmp1)
Li.append(tmp2)
Li.append(tmp3) # 定义合并单元格的开始位置
start_row = 2
end_row = 2
start_column = 2
end_column = 2
for each in Li:
end_row = start_row + len(each) - 1
ws.merge_cells(start_row=start_row, end_row=end_row, start_column=start_column, end_column=end_column)
start_row = end_row + 1
# =========合并单元格区=========== # 工作簿保存到磁盘
wb.save('test.xlsx')

  效果图:

  我想再创建一个sheet页

# 再创建一个sheet页
ws = wb.create_sheet(title=u'第二个Sheet页')

  

python 使用openpyxl来写数据到excel表格的更多相关文章

  1. Python导出数据到Excel表格-NotImplementedError: formatting_info=True not yet implemented

    在使用Python写入数据到Excel表格中时出现报错信息记录:“NotImplementedError: formatting_info=True not yet implemented” 报错分析 ...

  2. 导出数据到Excel表格

    开发工具与关键技术:Visual Studio 和 ASP.NET.MVC,作者:陈鸿鹏撰写时间:2019年5月25日123下面是我们来学习的导出数据到Excel表格的总结首先在视图层写导出数据的点击 ...

  3. Java操作Jxl实现导出数据生成Excel表格数据文件

    实现:前台用的框架是Easyui+Bootstrap结合使用,需要引入相应的Js.Css文件.页面:Jsp.拦截请求:Servlet.逻辑处理:ClassBean.数据库:SQLserver. 注意: ...

  4. 办公利器!用Python批量识别发票并录入到Excel表格

    辰哥今天来分享一篇办公干货文章:用Python批量识别发票并录入到Excel表格.对于财务专业等学生或者公司财务人员来说,将报账发票等汇总到excel简直就是一个折磨. 尤其是到年底的时候,公司的财务 ...

  5. 利用python将mysql中的数据导入excel

    Python对Excel的读写主要有xlrd.xlwt.xlutils.openpyxl.xlsxwriter几种. 如下分别利用xlwt和openpyxl将mysql数据库中查询的数据保存到exce ...

  6. python爬虫(正则取数据)读取表格内的基金代码后爬取基金最新净值,同时写到对应的表格中,基于最近一次购买净值计算出涨跌幅(名字有点长)

    最近基金跌的真够猛,虽说是定投,但大幅度下跌,有时候适当的增加定投数也是降低平均成本的一种方式 每天去看去算太费时间,写了个爬虫,让他自动抓数据后自动计算出来吧 实现逻辑: 1.创建了一个excel表 ...

  7. 使用python脚本从数据库导出数据到excel

    python从数据库导出数据到excel 最近需要从数据库里导出一些数据到excel,刚开始我是使用下面的命令 select * from xxx where xxx into outfile 'xx ...

  8. python数据写入Excel表格

    from openpyxl import Workbook def main(): sheet_name = "表名1" row_count = 6 # 行数 info_resul ...

  9. 将txt文件数据存入excel表格

    前言 最近使用Appium自动化在测试设备配网的情况,需要记录每次成功与否和耗时时间. 由于App不是很稳定,执行一段时间会奔溃,因此数据只能通过追加的形式写入到txt文件. 实现过程 存储在txt文 ...

随机推荐

  1. APP自动化测试中Monkey和 MonkeyRunner

    在设计了测试用例并通过评审之后,由测试人员根据测试用例中描述的规程步步执行测试,得到实际结果与期望结果的比较.在此过程中,为了节省人力.时间或硬件资源,提高测试效率,便引入了自动化测试的概念.自动化测 ...

  2. IntelliJ IDEA 设置代码提示或自动补全的快捷键

    IntelliJ IDEA 设置代码提示或自动补全的快捷键   点击 文件菜单(File) –> 点击 设置(Settings- Ctrl+Alt+S), –> 打开设置对话框. 在左侧的 ...

  3. Java与mysql数据库编程中遇见“Before start of result set at com.mysql.jdbc.SQLError.createSQLException” 的解决办法

    这个Bug是因为在取出ResultSet对象,对其进行操作时,没有采用.next()方法将ResultSet对象的光标移至指定行,不管Statement对象执行SQL语句是否十分确定能搜出记录,也不可 ...

  4. 利用SVN进行任意文件对比

    都知道SVN可以比较已经上传的文件的内容,看到两个文件有什么不同的地方. 但是有时候并不想上传想要比较的文件,能不能利用SVN这样一个功能去比较别的两个文件呢? 琢磨来琢磨去, 发现只要在资源管理器里 ...

  5. iOS开发多线程篇—NSOperation基本操作

    iOS开发多线程篇—NSOperation基本操作 一.并发数 (1)并发数:同时执⾏行的任务数.比如,同时开3个线程执行3个任务,并发数就是3 (2)最大并发数:同一时间最多只能执行的任务的个数. ...

  6. 苹果IOS系统SVN命令 同样适用于linux系统

    1.将文件checkout到本地目录svn checkout path(path是服务器上的目录)例如:svn checkout svn://192.168.1.1/pro/domain简写:svn ...

  7. this kernel requires an x86-64 CPU, but only detected an i686 CPU. unable to boot - please ues a ker

    http://blog.csdn.net/xiao_cs/article/details/7728529 this kernel requires an x86-64 CPU, but only de ...

  8. ios中通知的简单使用

    通知的机制是一对多,而block和delegate的机制是一对一,通知是好用,但小伙伴么要记得通知比较耗性能哦~~~ 谁要发送消息,谁就发出通知,谁要接受消息,谁就销毁通知. 下面直接来看代码: // ...

  9. 将事件绑定在html标签中和js动态绑定的区别

    一:绑定在标签中: 能够一眼看出那些元素绑定了什么事件. 只能将元素和事件逐一实现绑定. 二js动态绑定: 可以一次动态的给多个元素绑定事件,批量绑定事件. html标签绑定的缺点: ①:可能有时间差 ...

  10. poj3159 差分约束 spfa

    //Accepted 2692 KB 1282 ms //差分约束 -->最短路 //TLE到死,加了输入挂,手写queue #include <cstdio> #include & ...