一、使用介绍

使用openpyxl生成xlsx类型的execl,非常方便。先介绍下用到的相关模块与函数:

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

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

(3)get_column_letter:给一个数字得到一个列名,如A、B、C。

二、openpyxl模块安装

模块安装命令:

pip install openpyxl  -i https://pypi.tuna.tsinghua.edu.cn/simple

三、操作示例

3.1 逐行生成Excel文件示例

#!/usr/bin/env python
# _*_ coding:utf-8 _*_
from openpyxl.workbook import Workbook
from openpyxl.writer.excel import ExcelWriter# 创建一个excel文件并导入数据
if __name__ == '__main__':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']]# 在内存创建一个工作簿objwb = Workbook()ws = wb.activews.title = u'招录人员名单'# 向第一个sheet页写数据吧r = 1for line in data:for col in range(1, len(line) + 1):ws.cell(row=r, column=col).value = line[col - 1]r += 1# 工作簿保存到磁盘wb.save('aa_test.xlsx')

文件效果如下:

3.2 合并多行写Excel文件

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

#!/usr/bin/env python
# _*_ coding:utf-8 _*_
from openpyxl.workbook import Workbook
from openpyxl.writer.excel import ExcelWriter# 创建一个excel文件并导入数据
if __name__ == '__main__':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']]# 在内存创建一个工作簿objwb = Workbook()ws = wb.activews.title = u'招录人员名单'# 向第一个sheet页写数据吧r = 1for line in data:for col in range(1, len(line) + 1):ws.cell(row=r, column=col).value = line[col - 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 = 2end_row = 2start_column = 2end_column = 2for each in Li:end_row = start_row + len(each) - 1ws.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('aaaaaa_bbbbbb.xlsx')

文件效果如下:

python3使用openpyxl生成xlsx类型的excel表格相关推荐

  1. Qt: Linux下生成.xlsx文件(excel表格文件)

    Qt开发,项目中有个功能是要将数据导出至excel文件,也就是.xlsx或.wps格式文件. 查询一番,需要用到一个库 Qt Xlsx,方法如下: 1. 下载源码: GitHub - dbzhang8 ...

  2. 使用Poi读取xlsx类型的Excel

    其实这个跟读取xls是一样的,就是简单的换了个东西而已,下面直接进入正题. 1.使用Poi写xlsx类型的Excel package com.company.poi;import org.apache ...

  3. easypoi导出xlsx类型到excel设置

    easypoi导出xlsx类型到excel,本质上是底层使用的Workbook对象不一样,xlsx使用XSSFWorkbook对象,所以在构建Workbook对象的时候,需要注意使用XSSFWorkb ...

  4. 用Xlsx xlsx-style 导出excel表格,附带合并单元格,文字居中,文字颜色字体大小等样式 (复制即可实现)

    提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 系列文章目录 前言 一.用Xlsx xlsx-style 导出excel表格 二.使用步骤 1.安装插件 2.引入 总结 前 ...

  5. python列表逐行写入excel_python表格数据到excel-想问下python3怎么将列表数据逐行写入excel表格呢?...

    如何用python将数据写入excel表格 简介绍一下这两个库,先说xlrd,这个Excel比较,各种方法使用起来方便: bk = xlrd.open_workbook('your.xls') sh ...

  6. 跳过密码打开excel表格xlsx,忘记excel表格xlsx密码如何找回?

    excel表格xlsx解密,excel表格xlsx权限限制如何解除?[解密神器]excel表格xlsx软件解密工具,我一直在用「密码帝」 超级好用,百度搜索密码帝就可以了!非常简单手机电脑都可以用,一 ...

  7. 前端实现生成带有样式的excel表格 Node和浏览器读写Excel文件探究实践

    最近碰到个需要自动生成表格的任务,作为前端的我,就想在 node 和浏览器中生成强大的表格,所以特此研究了很多关于表格的 npm 库 支持读写 Excel 的 node.js 模块 node-xlsx ...

  8. python生成带超链接的excel表格

    前提:项目里已经有函数功能将数据库数据生成excel表格 需求:将现有的excel表格数值覆盖为url超链接 利用pandas直接写入 优点: 省事,只要把数值用原始的excel函数 =HYPERLI ...

  9. qt 使用 xlsx库操作excel表格(代码准确性未验证)

    Demo: #include"xlsxdocument.h"#include "xlsxformat.h" #include "xlsxcellran ...

最新文章

  1. MySQL之pymysql模块
  2. GridView隐藏列取值解决方案
  3. 中国电子学会图形化四级编程题:加减法混合运算器
  4. JS模块化工具requirejs教程02
  5. Markdown通用的常用语法说明
  6. 成功解决ModuleNotFoundError: No module named 'utils'
  7. 贵州计算机专业强的专科学校,贵州排名靠前的五年制大专学校--贵州计算机学校...
  8. 光纤熔接盒盘线方法_【图文教程】光纤熔接技术的操作与技巧分享!
  9. 将Vue+Nodejs项目部署到阿里云服务器
  10. 135_Power Query M语言快捷输入之输入法设置自定义短语
  11. guice依赖注入原理_Google Guice依赖注入示例教程
  12. qt 串口助手_新手如何从零开发ROS小车 (ros串口通讯、PID运动控制、双轮差速模型解算...
  13. 基于广度优先搜索的哈密顿图的判断算法
  14. MATLAB绘图—三维等值线绘图(contour3)
  15. 新人小白的第一次天池比赛感受
  16. 大龙嘚吧嘚之“C#中的类型转换”(前面是铺垫,可以直接跳到最后)
  17. conflict: unable to delete xxx (must be forced) - image is being used by stopped container xxx
  18. 循环播放背景音乐 html,js背景音乐循环播放代码(多浏览器支持)
  19. 软考 程序员教程-第二章 操作系统基础知识
  20. c头文件(.h)的作用

热门文章

  1. R语言动态可视化:制作历史全球平均温度的累积动态折线图动画gif视频图
  2. STM32学习记录——声音传感器的使用
  3. psm倾向得分匹配法举例_倾向得分匹配法 PSM
  4. PSM倾向得分匹配法【python实操篇】
  5. CentOS宝塔搭建(超详细)
  6. 【理论推导】随机微分方程(SDE)视角下的Diffusion Model与Score-based Model
  7. 噪音对比估计(NCE)
  8. 玩转linux 这些命令就够了
  9. Bat批处理方式发邮件
  10. python计算排列数 组合数