python 使用openpyxl来写数据到excel表格
2016-12-15 10:34
435 查看
使用openpyxl写execl确实很方便。我先介绍用到的相关模块与函数
Workbook:工作簿模块,在内存创建一个工作簿。
ExcelWriter:使用它向exel中写数据。
get_column_letter:给一个数字得到一个列名,如A,B,C
数据写入到EXCEL表格
效果图:
数据第二列是组号,数字相同的组号放在一个单元格中,怎么办呢?
效果图:
我想再创建一个sheet页
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 from openpyxl.cell import get_column_letter 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() # 将workbook obj写到excel文件 ew = ExcelWriter(workbook=wb) # 设定第一个sheet页,好像第一个sheet只能这样设定 ws = wb.worksheets[0] ws.title=u'招录人员名单' # 向第一个sheet页写数据吧 i = 1 for line in data: for col in range(1,len(line)+1): ColNum = get_column_letter(col) ws.cell('%s%s'%(ColNum,i)).value = line[col-1] i += 1 # 工作簿保存到磁盘 wb.save('test.xlsx')
效果图:
数据第二列是组号,数字相同的组号放在一个单元格中,怎么办呢?
#!/usr/bin/env python # _*_ coding:utf-8 _*_ from openpyxl.workbook import Workbook from openpyxl.writer.excel import ExcelWriter from openpyxl.cell import get_column_letter 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() # 将workbook obj写到excel文件 ew = ExcelWriter(workbook=wb) # 设定第一个sheet页,好像第一个sheet只能这样设定 ws = wb.worksheets[0] ws.title=u'招录人员名单' # 向第一个sheet页写数据吧 i = 1 for line in data: for col in range(1,len(line)+1): ColNum = get_column_letter(col) ws.cell('%s%s'%(ColNum,i)).value = line[col-1] i += 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表格数据方法
- python使用openpyxl库修改excel表格数据
- python使用openpyxl操作excel表格
- python3使用 openpyxl 操作excel表格
- python3使用openpyxl导出巨大量数据到excel文件
- 使用Python处理excel表格(openpyxl)及表格中的中文处理
- 使用Python处理excel表格(openpyxl)教程
- 使用Python与openpyxl进行表格处理(一)——读取数据
- 使用Python实现读取Excel表格中的数据
- 通过VSTS使用Excel表格进行数据驱动的单元测试
- python+httplib实现HTTP POST提交数据,使用Basic Authentication(基本验证)做登陆验证
- Python使用MySQLdb切换数据库
- 使用Python批量下载数据
- 使用python处理excel表格
- 在Python 3.0中持久化数据至文件中,使用pickle
- Python使用cookielib和urllib2模拟登陆新浪微博并抓取数据
- 使用python 提取html文件中的特定数据
- 可爱的 Python: 使用 mechanize 和 Beautiful Soup 轻松收集 Web 数据
- 使用Python处理Excel表格
- 使用Gtreamer获得摄像头数据并显示(Webcam streaming using Python--pyGTK, wxPython and Gstreamer)