python操作xlsx文件的包openpyxl实例


Posted in Python onMay 03, 2018

Python扩展库openpyxl,可以操作07版以上的xlsx文件。可以创建工作簿、选择活动工作表、写入单元格数据,设置单元格字体颜色、边框样式,合并单元格,设置单元格背景等等。

需要增加可以颜色进入包安装目录的

your_pthon_path/site-packages/openpyxl/styles

修改colors.py文件下的

COLOR_INDEX = (
 '00000000', '00FFFFFF', '00FF0000', '0000FF00', '000000FF', #0-4
 '00FFFF00', '00FF00FF', '0000FFFF', '00000000', '00FFFFFF', #5-9
 '00FF0000', '0000FF00', '000000FF', '00FFFF00', '00FF00FF', #10-14
 '0000FFFF', '00800000', '00008000', '00000080', '00808000', #15-19
 '00800080', '00008080', '00C0C0C0', '00808080', '009999FF', #20-24
 '00993366', '00FFFFCC', '00CCFFFF', '00660066', '00FF8080', #25-29
 '000066CC', '00CCCCFF', '00000080', '00FF00FF', '00FFFF00', #30-34
 '0000FFFF', '00800080', '00800000', '00008080', '000000FF', #35-39
 '0000CCFF', '00CCFFFF', '00CCFFCC', '00FFFF99', '0099CCFF', #40-44
 '00FF99CC', '00CC99FF', '00FFCC99', '003366FF', '0033CCCC', #45-49
 '0099CC00', '00FFCC00', '00FF9900', '00FF6600', '00666699', #50-54
 '00969696', '00003366', '00339966', '00003300', '00333300', #55-59
 '00993300', '00993366', '00333399', '00333333', 'System Foreground', 'System Background' #60-64
 '00D2B48C', '0087CEFA', '0000BFFF' #自己添加的
)

以00+16进制RGB颜色代码的形式即可

自己写的一个生成xlsx文件的代码:

#!/usr/bin/env python
#-*- coding: utf-8 -*-
import openpyxl
from openpyxl import Workbook
from openpyxl.styles import colors,Font,Border,Side,PatternFill,Alignment
wb = Workbook() #创建工作簿
ws = wb.active #激活工作簿
ws.merge_cells('C3:E3') #合并单元格
ws.merge_cells('C4:E4')
ws.merge_cells('C20:I20')
ws.merge_cells('C21:I21')
left, right, top, bottom = [Side(style='thin', color='000000')]*4 #设置单元格边框属性
border = Border(left=left, right=right, top=top, bottom=bottom) #设置单元格边框格式
fill1 = PatternFill(start_color = 'FFFF00', end_color = 'FFFF00', fill_type = 'solid') #设置单元格背景色
fill2 = PatternFill(start_color = 'D2B48C', end_color = 'D2B48C', fill_type = 'solid')
fill3 = PatternFill(start_color = '00BFFF', end_color = '00BFFF', fill_type = 'solid')
fill4 = PatternFill(start_color = 'FF0000', end_color = 'FF0000', fill_type = 'solid')
align1 = Alignment(horizontal='center', vertical='center') #设置文本对齐
align2 = Alignment(horizontal='left', vertical='center')
for i in range(3,22):
 for col in 'CDEFGHIJK':
 ws[col+str(i)].border = border #给每个单元格设置相应的格式 
 #ws[col+str(3)].fill = fill1
 #ws[col+str(i)].alignment = align
for col in 'CDEFGHIJK':
 ws[col+str(3)].fill = fill1
 ws[col+str(20)].fill = fill3
 ws[col+str(21)].fill = fill4
 for i in range(4,20):
 ws[col+str(i)].fill = fill2
for col in 'CDEFGHIJK':
 ws[col+str(3)].alignment = align1
for i in range(4,22):
 for col in 'CDE':
 ws[col+str(i)].alignment = align2
for col in 'CDEFGHIJK':
 ws[col+str(3)] = 'test1' #单元格赋值
for i in range(3,22):
 for col in 'CDE':
 if i in range(5,20) and col == 'C':
  pass
 else:
  ws[col+str(i)] = 'test2'
for i in range(4,20):
 for col in 'EFGHIJK':
 ws[col+str(i)] = 50
for i in range(20,22):
 for col in 'JK':
 ws[col+str(i)] = 100
wb.save('test.xlsx') #保存文件

单元格字体等也可以使用相应的模块去设置。

以上这篇python操作xlsx文件的包openpyxl实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python使用两种发邮件的方式smtp和outlook示例
Jun 02 Python
python使用PyCharm进行远程开发和调试
Nov 02 Python
django+mysql的使用示例
Nov 23 Python
Python设计模式之享元模式原理与用法实例分析
Jan 11 Python
Python实现 版本号对比功能的实例代码
Apr 18 Python
对Django 转发和重定向的实例详解
Aug 06 Python
python函数声明和调用定义及原理详解
Dec 02 Python
Python for循环搭配else常见问题解决
Feb 11 Python
Tensorflow:转置函数 transpose的使用详解
Feb 11 Python
TensorFlow2.1.0最新版本安装详细教程
Apr 08 Python
Python打印特殊符号及对应编码解析
May 07 Python
Python爬虫制作翻译程序的示例代码
Feb 22 Python
对Python字符串中的换行符和制表符介绍
May 03 #Python
pandas数据处理基础之筛选指定行或者指定列的数据
May 03 #Python
Python爬虫实现全国失信被执行人名单查询功能示例
May 03 #Python
Python 解决中文写入Excel时抛异常的问题
May 03 #Python
python 将数据保存为excel的xls格式(实例讲解)
May 03 #Python
python更改已存在excel文件的方法
May 03 #Python
python写入已存在的excel数据实例
May 03 #Python
You might like
highchart数据源纵轴json内的值必须是int(详解)
2017/02/20 PHP
PHP实现会员账号单唯一登录的方法分析
2019/03/07 PHP
在textarea中屏蔽js的某个function的javascript代码
2007/04/20 Javascript
HTML 自动伸缩的表格Table js实现
2009/04/01 Javascript
js 键盘记录实现(兼容FireFox和IE)
2010/02/07 Javascript
onsubmit阻止form表单提交与onclick的相关操作
2010/09/03 Javascript
JQuery1.6 使用方法三
2011/11/23 Javascript
用JQuery在网页中实现分隔条功能的代码
2012/08/09 Javascript
Ext JS添加子组件的误区探讨
2013/06/28 Javascript
JavaScript解析URL参数示例代码
2013/08/12 Javascript
使用JavaScript的ActiveXObject对象检测应用程序是否安装的方法
2014/04/15 Javascript
Javascript中的delete操作符详细介绍
2014/06/06 Javascript
js控制再次点击按钮之间的间隔时间可防止重复提交
2014/08/01 Javascript
jQuery+CSS实现滑动的标签分栏切换效果
2015/12/17 Javascript
jQuery中的AjaxSubmit使用讲解
2016/09/25 Javascript
jQuery Easyui datagrid连续发送两次请求问题
2016/12/13 Javascript
学习使用Bootstrap栅格系统
2017/05/11 Javascript
Sublime Text新建.vue模板并高亮(图文教程)
2017/10/26 Javascript
node vue项目开发之前后端分离实战记录
2017/12/13 Javascript
JavaScript实现二叉树定义、遍历及查找的方法详解
2017/12/20 Javascript
详解JS数值Number类型
2018/02/07 Javascript
vue绑定的点击事件阻止冒泡的实例
2018/02/08 Javascript
vue+node实现图片上传及预览的示例方法
2018/11/22 Javascript
JS实现指定区域的全屏显示功能示例
2019/04/25 Javascript
微信小程序页面滚动到指定位置代码实例
2019/09/07 Javascript
浅谈Python使用Bottle来提供一个简单的web服务
2017/12/27 Python
Python中对数组集进行按行打乱shuffle的方法
2018/11/08 Python
Python time库基本使用方法分析
2019/12/13 Python
Python如何实现邮件功能
2020/05/27 Python
opencv 阈值分割的具体使用
2020/07/08 Python
全球酒店预订网站:Hotels.com
2016/08/10 全球购物
介绍一下Java中的static关键字
2012/05/12 面试题
环境工程专业自荐信
2014/03/03 职场文书
煤矿安全生产月活动总结
2014/07/05 职场文书
党员民主生活会整改措施
2014/09/26 职场文书
预备党员思想汇报1000字
2014/10/07 职场文书